«generics» etiketlenmiş sorular

Jenerikler, .NET dilleri, Java, Swift ve Rust gibi çeşitli dillerde bulunan bir tür parametrik polimorfizmdir.

1
Bir type parametresi neden bir yöntem parametresinden daha güçlü?
Neden ki public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} o zaman daha katı public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} Bu, lambda dönüş türünün derleme zamanında neden kontrol edilmediğinin bir takibi . withX()Gibi yöntemi kullanarak buldum .withX(MyInterface::getLength, "I am not a Long") istenen …

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 …

1
Java-8'de yöntem referansı ve jenerikler
Genel türlerle birlikte yöntem başvurusu ile ilgili sorun yaşıyorum . Aşırı yüklenmiş bir yöntemi çağırmamız gereken kodumuz var, ancak hata ile başarısız oluyor: M1 değeri çözümlenemiyor () Sorunun nerede yattığını netleştirmek için sorunumu basitleştirdim. Aşağıdaki kod başarısız olur: public class Test { void test() { // Getting error here setValue(C1::m1, …
11 java  generics  lambda  java-8 

4
Tür eşleme yaparken genel özelliklerle ilgili sorun
Aşağıdakine benzer bir yardımcı program türü veren bir kütüphane var: type Action<Model extends object> = (data: State<Model>) => State<Model>; Bu yardımcı program türü, "eylem" olarak işlev görecek bir işlevi bildirmenize olanak tanır. ModelEylemin karşı çıkacağı genel bir argüman alır . data"Eylem" argümanı sonra ihracat başka yarar tipiyle yazılan; type State<Model …

2
C # 'notnull` türünü nulllable yapamaz
Rust's Resultveya Haskell'e benzer bir tür oluşturmaya çalışıyorum Eitherve şu ana kadar aldım: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError> Value; public Result(TResult result) => Value = result; public Result(TError error) => Value = error; public static implicit operator Result<TResult, …

4
C # jenerik yöntem seçimi
Farklı boyutta geometrik varlıkları ile çalışabilir C # genel algoritmaları yazmaya çalışıyorum. Ben şu yapmacık örnekte Point2ve Point3hem basit uygulayan IPointbir arayüz. Şimdi bir işlevi GenericAlgorithmçağıran bir fonksiyon var GetDim. Bu işlevin türe bağlı olarak birden fazla tanımı vardır. Ayrıca, uygulayan her şey için tanımlanmış bir geri dönüş işlevi de …
9 c#  generics 
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.