Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 18

Применение аннотаций в Java

23.11.2019, 15:30. Показов 1467. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть такая учебная задача:

Используя среду программирования JDeveloper или NetBeans создайте проект на языке Java, в котором
определите аннотацию для методов с одним параметром: строкой - для имени метода.
Создайте в этом же проекте класс, содержащий три метода, каждый их которых пометьте созданной аннотацией.
В первом методе укажите две целочисленных параметра, во втором - один вещественный и один типа массива символов, в третьем укажите переменное число параметров любого типа. Каждый метод должен отображать в поток вывода количество переданных ему параметров.
В методе main этого же класса :
1. отобразите для каждого метода значение параметра установленной для метода аннотации;
2. выполните вызов каждого метода (третий метод вызовите дважды с разными списками параметров).

Начал решать и завис.

вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
public class MyNewClass{
    public interface TYPE<T> {
    }
      public static void main(String[] args) {
    }
      public static void first(int a, int b){
      }
       public static void second(float c, char[] d){
      }
       public static void third(TYPE ... left){
      }
1. Первым делом создал класс;
2.Определил 3 метода;
3. Для того, что реализовать переменное число параметров любого типа, определил универсальный тип TYPE (Generic)

На этом мои познания закончились.

Подскажите, пожалуйста:

1. Как реализовать это: " Каждый метод должен отображать в поток вывода количество переданных ему параметров"?
2. Как реализовать это: "определите аннотацию для методов с одним параметром: строкой - для имени метода"?

Такие мудрёные формулировки...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2019, 15:30
Ответы с готовыми решениями:

Применение Java для разработки комплексных проектов
Вопрос по применимости Java для написания полноценных распределенных приложений , построенных по трехуровневой схеме . Насколько я...

Промежуточное программное обеспечение Ice - применение в java
Добрый день всем. Сразу прошу извинить, если тема не в том разделе. Собственно говоря, вопрос такой - что за зверь такой Ice, и под...

Применение Java EE
Добрый день, хотелось бы, чтобы кто-нибудь помог разобраться. Собственно интересует для чего же все-таки нужен Java EE и все что базируется...

5
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 18
28.12.2020, 18:33
Barboss19, Здравствуй!
У меня та же задача и стопорюсь на этом: " Каждый метод должен отображать в поток вывода количество переданных ему параметров"?
Подскажешь, чем дело кончилось?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.12.2020, 18:52
Java
1
2
3
public void foo(TYPE<T>... args){
    System.out.println(args.length);
}
1
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 18
28.12.2020, 19:21
iSmokeJC, Здраствуйте!
Спасибо за ответ. Но с массивами как раз проблемы нет.
Проблема в двух первых методах.
"В первом методе укажите две целочисленных параметра, во втором - один вещественный и один типа массива символов"
Т.е., понятно, что в первом методе всего два параметра и их не должно быть больше, но в задании написано, что метод должен отображать количество переданных параметров, т.е., отображать 2.

Я совершенно новичок в программировании и мой код сейчас выглядит по-идиотски.
Но мне больше не с кем посоветоваться.

@Annotation1(name = "method M1")
private Integer M1(int a, int b){
return ??????;}

@Annotation1(name = "method M2")
private Integer M2(double c, char... d){
return ?????? d.length;}

@Annotation1(name = "method M3")
private Integer M3(Class<?>... i){
return i.length;}
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
28.12.2020, 19:26
Barboss19, Tolko sprosit, вы с одной кафедры, чтоль?
так не катит?
Java
1
2
3
4
5
6
7
8
9
10
public class MyNewClass{
    public static void main(String[] args) {
    }  
    public static void first(int a, int b){
    }
    public static void second(float c, char[] d){
    }
    public static void third(Object... left){
    }
}
0
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 18
28.12.2020, 19:38
Aviz__, Скорей всего, с одной. Задание по параметризированным типам в С# у нас тоже одинаковое.

С объявлением методов мне, вроде как, понятно, но вот никак не пойму вот этого: "Каждый метод должен отображать в поток вывода количество переданных ему параметров."

Там где массивы, там с помощью length можно подсчитать, а где целочисленные типы? Пытаюсь с помощью счётчика count, но тоже не то... И при этом, мне же точно известно сколько параметров передаётся, хочется уже просто написать "2", но это тупость.
Вообще, сам код выглядит так.
Строчки "return 2;}" и "return 1 + d.length;}" - это просто из-за бессильной ярости.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package package1;
 
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.NoSuchMethodException;
import java.lang.Integer;
import java.lang.Character;
import java.lang.Double;
 
 
public class Class1 {
        
    @Annotation1(name = "method M1")
    private Integer M1(int a, int b){
        return 2;}
        
    @Annotation1(name = "method M2")
    private Integer  M2(double c, char... d){
         return 1 + d.length;}
        
    @Annotation1(name = "method M3")
    private Integer M3(Class<?>... i){
        return i.length;}
    
    public static void main(String[] args){
 
        Class1 m1 = new Class1(); 
        Method method;
        Annotation1 Class1;
        
      try {
        method = m1.getClass().getDeclaredMethod("M1", int.class, int.class);
        Class1 = method.getAnnotation(Annotation1.class);
        System.out.println("Method name: " + Class1.name());
    } catch(NoSuchMethodException e){System.out.println("ошибка");}
    
      try {
        method = m1.getClass().getDeclaredMethod("M2", double.class, char[].class);
        Class1 = method.getAnnotation(Annotation1.class);
        System.out.println("Method name: " + Class1.name());
    } catch(NoSuchMethodException f){System.out.println("ошибка");}
    
      try {
        method = m1.getClass().getDeclaredMethod("M3", Class[].class);
        Class1 = method.getAnnotation(Annotation1.class);
        System.out.println("Method name: " + Class1.name());
    } catch(NoSuchMethodException g){System.out.println("ошибка");}
    
        System.out.println("M1 количество параметров: " + m1.M1(1, 2));
        System.out.println("M2 количество параметров: " + m1.M2(1.567, 'a', 'b', 'c'));
        System.out.println("M3 количество параметров: " + m1.M3(Integer.class, String.class, Object.class));
        System.out.println("M3 количество параметров: " + m1.M3(Integer.class, double.class));
 
    }
    
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2020, 19:38
Помогаю со студенческими работами здесь

Применение JavaScript в Java EE разработке
Вопрос тем кто работает. Какой уровень знания JS необходим на работе? Я читал, что просят JS + AJAX. А какие конкретные задачи обычно стоят...

Java SE - Правильно ли я понимаю применение интерфейсов и абстрактных классов ?
Правильно ли я понимаю применение интерфейсов и абстрактных классов ? Созданы интерфейсы Move, Eat, Voice эти итерфесы extends интерфейс...

Использование аннотаций
Всем доброго времени суток. Суть проблемы такова: мне нужно залить в файл все поля классов и их значения; поля аннотированы, и я получаю...

Как работают парсеры аннотаций?
Меня конкретно заинтересовала механика работы аннотаций в докблоках к классам в PHP. Встретил я это в Symfony, очень много искал, но...

Программа создания аннотаций к видео файлам
В общем, дело такое. Нужно написать программу создания аннотации к видео файлам на C# Windows Forms. Проблема в том, что шарп только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru