Как импортировать класс Java? [дубликат]

6
задан Community 23 May 2017 в 12:03
поделиться

4 ответа

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

Также, если вы используете Eclipse и сочетание клавиш CTRL+SHIFT+O, он автоматически создаст явный импорт, подсказывая вам неоднозначный импорт.

14
ответ дан 8 December 2019 в 03:00
поделиться

Он будет импортировать только классы в java.awt, поэтому вам также придется импортировать java.awt.event:

import java.awt.*
import java.awt.event.*;

Второй метод, вероятно, загрузит меньше классов , но не сэкономит много памяти.

7
ответ дан 8 December 2019 в 03:00
поделиться

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

Примите во внимание

import java.util.*;
import java.awt.*;

, когда вы пытаетесь объявить List , у вас будет конфликт между java.awt.List и java.util.List

6
ответ дан 8 December 2019 в 03:00
поделиться

Что вы делаете с данными ? Мой ответ: ничего . Модули SVM предназначены для обработки объемных данных. Сейчас я работаю над исследовательской проблемой, которая включает в себя контролируемую классификацию с использованием SVM. Наряду с поиском источников в Интернете, я проводил собственные эксперименты по влиянию уменьшения размерности до классификации. Предварительная обработка функций с использованием PCA/LDA существенно не увеличила точность классификации SVM.

Для меня это совершенно понятно из путь работают SVM. Пусть x - m-мерный вектор элемента. Пусть y = Ax, где y находится в R ^ n, а x находится в R ^ m для n < m, т.е. y проецируется на пространство более низкого размера. Если классы Y1 и Y2 являются линейно разделяемыми в R ^ n, то соответствующие классы X1 и X2 являются линейно разделяемыми в R ^ m. Следовательно, исходные подпространства должны быть «по крайней мере» столь же отделяемыми, как их проекции на более низкие размеры, то есть PCA не должна помогать, в теории.

Вот одно обсуждение, которое обсуждает использование PCA перед SVM: ссылка

То, что вы можете сделать, это изменить параметры SVM. Например, при использовании libsvm ссылок параметры C и гамма имеют решающее значение для успеха классификации. Часто задаваемые вопросы по libsvm, особенно по ссылке , содержат более полезные советы. Среди них:

  1. Масштабируйте свои функции перед классификацией.
  2. Попробуйте получить сбалансированные классы. Если невозможно, то наказывать один класс больше, чем другой. См. дополнительные ссылки на дисбаланс SVM.
  3. Проверьте параметры SVM. Попробуйте много комбинаций, чтобы прийти к лучшему.
  4. Сначала используйте ядро RBF. Он почти всегда работает лучше всего (вычислительно говоря).
  5. Почти забыли... перед тестированием перекрестная проверка !

EDIT: Позвольте мне просто добавить эту «точку данных». Недавно я провел еще один масштабный эксперимент с использованием SVM с предварительной обработкой PCA на четырех эксклюзивных наборах данных. PCA не улучшил результаты классификации для любого выбора уменьшенной размерности. Исходные данные с простым масштабированием по диагонали (для каждого элемента вычитайте среднее и делите на стандартное отклонение) работали лучше. Я не делаю никаких общих выводов - просто делюсь этим экспериментом. Может быть, на разных данных, PCA может помочь.

-121--1721875-

Если вы хотите продолжить использование CSS вместо использования некоторых трюков, описанных в предыдущих публикациях, вам следует обратиться к компиляторам CSS. Они берут код, подобный CSS, который вы написали, обычно CSS с несколькими добавленными хитростями, и превращают их в обычный CSS для Интернета.

Дэвид Циглер писал о некоторых классных компиляторах CSS:

  • Переменные - Хорошие программисты не любят жестко кодировать. Во многих случаях можно избежать этого в CSS, используя хорошее наследство, но иногда это неизбежно. При использовании переменных изменение цветовой схемы означает обновление одной переменной вместо 13 атрибутов.

  • Math - это происходит параллельно с переменными.Скажем, ваш левый столбец равен 100рх, правый столбец равен 500рх, а div обертки равен 600рх. Ну, может, вы решите изменить его на 960рх. Разве не было бы здорово, если бы ширина ваших колонок регулировалась автоматически? Ответ - да.

  • Вложенные стили - это, вероятно, самое важное. CSS плоский, что означает, что сложные сайты заканчиваются CSS, через который нужно пройти.

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

-121--4859510-

Более явный.

EDIT: Преимущество второго метода - удобочитаемость, отсутствие конфликта пространств имен и т.д. Но если у вас есть сто классов для импорта из одного пакета, вам лучше пойти с первым подходом.

4
ответ дан 8 December 2019 в 03:00
поделиться
Другие вопросы по тегам:

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