Как избежать “неиспользованного параметрического усилителя” предупреждение при переопределении метода в java 1.4?

Вы должны добавить ключ 'id' к вашему массиву данных (конечно, верните массив как 'doc_data', как вы делаете прямо сейчас):

$data = array(
    'id' => $id
    'name' => $request->name,
    'start_date' => Carbon::parse( $request->start_date),
    'end_date' => Carbon::parse( $request->end_date),
    'amount' => $request->amount,
    'merchant_id' => $user_id
);

return view('doctracking.doctracking', [
     'selluser' => $selluser, 
     'doc_data' => $data
]);

Доступ к нему так:

@foreach($doc_data as $data)
      {{ $data['id'] }}
@endforeach
5
задан Steve Schnepp 24 April 2009 в 17:08
поделиться

5 ответов

Предупреждение не является проблемой, я боюсь, что дизайн таков.

Ваша текущая иерархия нарушает принцип подстановки Лискова, так как класс, получающий экземпляр MyClass, ожидает, что setInnerValue будет работать и может не обработать это исключение правильно. Вы можете сказать, что X для чтения и записи - это тип X для чтения, но нельзя сказать, что X для чтения - это тип X для чтения и записи.

Когда я сталкиваюсь с такого рода В этой ситуации я создаю интерфейс IMyX с операциями чтения, подынтерфейс IMutableMyX с операциями записи, а затем реальный класс реализует IMutableMyX и, следовательно, IMyX. Тогда я очень осторожен, чтобы передавать IMutableMyX только тогда, когда мне нужно, и передавать IMyX во всех других случаях.

Мне кажется, что для ограничения доступа лучше использовать компилятор и типы, чем рассчитывать на исключения во время выполнения. Это также делает ваш код намного более понятным и вынуждает вас явно понижать интерфейс, когда вам нужен доступ на запись.

Я понимаю, что это не отвечает на ваш вопрос об избавлении от предупреждений. Но предупреждения могут быть либо подавлены, либо проигнорированы, либо устранены. Неиспользуемый параметр часто является неприятным запахом, который указывает, что ваш метод может не выполнять то, что он должен делать. Методы должны получать только необходимые параметры. Если параметр не используется, параметр не является обязательным, и поэтому необходимо что-то изменить.

Я понимаю, что это не отвечает на ваш вопрос об избавлении от предупреждений. Но предупреждения могут быть либо подавлены, либо проигнорированы, либо устранены. Неиспользуемый параметр часто является неприятным запахом, который указывает, что ваш метод может не выполнять то, что он должен делать. Методы должны получать только необходимые параметры. Если параметр не используется, параметр не является обязательным, и поэтому необходимо что-то изменить.

Я понимаю, что это не отвечает на ваш вопрос об избавлении от предупреждений. Но предупреждения могут быть либо подавлены, либо проигнорированы, либо устранены. Неиспользуемый параметр часто является неприятным запахом, который указывает, что ваш метод может не выполнять то, что он должен делать. Методы должны получать только необходимые параметры. Если параметр не используется, параметр не является обязательным, и поэтому необходимо что-то изменить.

11
ответ дан 13 December 2019 в 05:42
поделиться

Вы можете безопасно вводить строки, такие как: innerValue = null ; вверху функции для всех неиспользуемых аргументов. Это не повлияет на вызывающую функцию, но будет радовать компилятор.

0
ответ дан 13 December 2019 в 05:42
поделиться

Боюсь, вы застряли с фиктивным кодом. В C / C ++ вы можете использовать макрос ( #define _unused (x) ((void) x) ), но переменная (void); не является допустимым оператором в Java.

Если вам станет легче, компилятор, скорее всего, оптимизирует пустой блок if.

0
ответ дан 13 December 2019 в 05:42
поделиться

Я бы не стал играть "трюки с кодом", просто чтобы убрать предупреждение компилятора, надеясь, что компилятор оптимизирует трюки. На самом деле, этот компилятор предупреждает все это полезно? Я бы просто отключил это. Как только вы используете Java 5, вы можете использовать @SuppressWarnings и включить его.

IMO, плохая идея включать все возможные предупреждения, только потому, что они существуют, а затем намеревался убрать каждое предупреждение. Выясните, какие предупреждения имеют смысл для вашей среды, и отключите остальные.

1
ответ дан 13 December 2019 в 05:42
поделиться

Если вы используете Eclipse (?), Вы можете включить предупреждения «Параметр никогда не читается», но игнорировать случаи в переопределении и реализации методов (которые решат эту конкретную проблему) и, отдельно, тех, которые задокументированы с помощью тега "@param" (хотя, конечно, это не относится к Java 1.4). Я ожидаю, что большинство других Java IDE будут иметь аналогичные настройки.

0
ответ дан 13 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: