«javac» etiketlenmiş sorular

javac, Sun Microsystems'den (şimdi Oracle) Java Geliştirme Kitine (JDK) ve ayrıca diğer satıcıların sürümlerine dahil olan birincil Java derleyicisidir.

3
Javac neden diğerlerine değil bazı imkansız kalıplara izin veriyor?
Bir döküm denerseniz Stringbir etmek java.util.Date, Java derleyici hatası yakalar. Peki derleyici aşağıdakileri neden hata olarak işaretlemiyor? List<String> strList = new ArrayList<>(); Date d = (Date) strList; Tabii ki, JVM bir ClassCastExceptionçalışma zamanında atar , ancak derleyici bunu işaretlemez. Davranış javac 1.8.0_212 ve 11.0.2 ile aynıdır.

1
'+' Operatörü Nesne ve Dizeye uygulanamaz
Aşağıdaki kod: void someMethod(Object value) { String suffix = getSuffix(); if (suffix != null) value += suffix; [...] } JDK 8'de hatasız derler (-source 1.6 kullanarak), ancak JDK 6'da hata iletisiyle başarısız olur: Operator '+' cannot be applied to java.lang.Object and java.lang.String Hatanın ne ile ilgili olduğunu anlasam da, bu …
12 java  java-8  javac  java-6 

3
Birden fazla eşleşen hedef tipine sahip lambda ifadesi için yöntem imza seçimi
Ben yanıtlayan oldu bir sorum ben açıklayamam bir senaryo içine ve ran. Bu kodu düşünün: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A { private static CustomIterable<A> iterable; private static List<A> aList; public static void main(String[] args) …
11 java  generics  lambda  javac  ecj 

1
Derleyici, ilişkisiz bir arabirim türüyle çağrıldığında neden bu genel yöntemi bir sınıf türü parametresiyle seçiyor?
Aşağıdaki iki sınıfı ve arayüzü düşünün: public class Class1 {} public class Class2 {} public interface Interface1 {} Neden ikinci çağrı için gelmez mandatoryile aşırı yöntemi çağırmak Class2, eğer getInterface1ve Interface1hiçbir ilişkisi var Class2? public class Test { public static void main(String[] args) { Class1 class1 = getClass1(); Interface1 interface1 …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.