Разница между компиляцией инструмента командной строки и компиляцией IDE Java
Я новичок в Java, ROOKIE... я делал пример arraylist, и я скомпилировал его на IDE, он работал отлично, я сделал этот пример на CMD, он дал мне ошибку
Примечание. Practice.java использует непроверенные или небезопасные операции.
Примечание: Перекомпилируйте с -Xlint: не проверено для деталей.
так что я использовал свою силу поиска в Google и все погуглил, я нашел ответ,
кстати, это код, о котором я говорю...
import java.util.*;
public class Practice{
public static void main(String[] args){
ArrayList mylist = new ArrayList();
mylist.add("Maisam Bokhari");
mylist.add("Fawwad Ahmed");
mylist.add("Ali Asim");
mylist.add("Maheen Hanif");
mylist.add("Rimsha Imtiaz");
mylist.add("Mugheer Mughal");
mylist.add("Maaz Hussain");
mylist.add("Asad Shahzada");
mylist.add("Junaid Khan");
System.out.println("Name of the student: "+mylist);
}
}
он отлично работает на IDE (NetBeans), но он дал эти 2 ошибки на CMD
многие люди по всему интернету и stackru говорят, что определяют тип данных при создании объекта ArrayList
ArrayList
я сделал это, и он отлично работал на CMD тоже...:)
Теперь мой вопрос заключается в том, что я не могу найти в Интернете
В чем разница между компиляцией IDE и компиляцией инструментов командной строки?
(Я помню, когда я использовал для компиляции своего C- кода в TurboC и когда я перешел на code::blocks, мне пришлось изменить какой-то код для настройки компилятора, это то же самое? Но Java был независим от платформы)
3 ответа
Это интересный вопрос, я пробовал ваш код в Eclipse IDE, в котором он совсем не подходит, потому что Eclipse выдаст предупреждение, которое гласит:
Type safety: The method add(Object) belongs to the raw type List. References to generic type List<E> should be parameterized
Вот почему ваша следующая операция не является безопасной. Пожалуйста, посмотрите этот пример, если вы не указали тип данных списка, вы можете добавить любой тип данных в список
List a = new ArrayList();
a.add("abc"); //add a string object
a.add('a'); //add a char
a.add(1); // add a integer
Поэтому, когда вы управляете элементом в списке, это будет небезопасно. Это имеет смысл для вас?
Одна из причин такого различия заключается в том, что ваша IDE может использовать другую версию Java, чем ваш компилятор командной строки. Вы увидите это, если ваша среда IDE Netbeans использует Java версии 1.4 или старше, а ваша командная строка использует версию 1.5 или выше.
Ваша IDE будет сообщать об одном и том же, в зависимости от версии компилятора. Насколько я помню, Java 1.4 не будет сообщать об этом как о проблеме, но 1.5 и более новые версии будут из-за того, что вы идете вразрез с дженериками.
Если все сделано правильно, нет разницы между компиляцией, выполненной в командной строке, и компиляцией, выполненной IDE. Но это означает, что вы должны быть уверены, что одна и та же версия Java используется для компиляции кода между ними.