«generics» 태그된 질문

제네릭은 .NET 언어, Java, Swift 및 Rust를 포함하여 다양한 언어로 발견되는 파라 메트릭 다형성의 한 형태입니다.

5
자바 : 제한된 와일드 카드 또는 제한된 유형 매개 변수?
최근에 다음 기사를 읽었습니다. http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html 내 질문은 다음과 같은 방법을 만드는 대신입니다. public void drawAll(List<? extends Shape> shapes){ for (Shape s: shapes) { s.draw(this); } } 다음과 같은 메서드를 만들 수 있으며 제대로 작동합니다. public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } 어떤 …


5
사전 값을 배열로 변환
사전의 값 목록을 배열로 바꾸는 가장 효율적인 방법은 무엇입니까? 나는이있는 경우 예를 들어, Dictionary곳 Key이다 String와 Value이다 Foo, 나는 싶어Foo[] VS 2005, C # 2.0을 사용하고 있습니다.

10
Java 제네릭을 사용하여 열거 형 값 반복
제네릭을 사용하는 동안 열거 형 값을 반복하는 방법을 찾으려고합니다. 이 작업을 수행하는 방법 또는 가능한지 확실하지 않습니다. 다음 코드는 내가 원하는 것을 보여줍니다. 코드 T.values ​​() 는 다음 코드에서 유효하지 않습니다. public class Filter<T> { private List<T> availableOptions = new ArrayList<T>(); private T selectedOption; public Filter(T selectedOption) { this.selectedOption = …

8
제네릭 유형의 값을 비교하는 방법은 무엇입니까?
제네릭 유형의 값을 어떻게 비교합니까? 최소한의 샘플로 줄였습니다. public class Foo<T> where T : IComparable { private T _minimumValue = default(T); public bool IsInRange(T value) { return (value >= _minimumValue); // <-- Error here } } 오류는 다음과 같습니다. '> ='연산자는 'T'및 'T'유형의 피연산자에 적용 할 수 없습니다. 도대체 뭐야!? …

5
기본 유형에 대한 일반 유형 제한을 정의하는 방법은 무엇입니까?
일반 유형의 다음 방법이 있습니다. T GetValue<T>(); T를 int, string, float와 같은 기본 유형으로 제한하고 싶지만 클래스 유형은 아닙니다. 다음과 같이 클래스 유형에 대한 제네릭을 정의 할 수 있습니다. C GetObject<C>() where C: class; 기본 유형에 대해 가능한지, 가능한지 확실하지 않습니다.

8
Swift : 제네릭 유형이 프로토콜을 준수하는지 확인
다음과 같이 정의한 프로토콜이 있습니다. protocol MyProtocol { ... } 또한 일반 구조체가 있습니다. struct MyStruct <T> { ... } 마지막으로 일반적인 기능이 있습니다. func myFunc <T> (s: MyStruct<T>) -> T? { ... } T 유형이 MyProtocol을 준수하는지 함수 내부를 테스트하고 싶습니다. 본질적으로 나는 할 수 있기를 원합니다 (~ 의사 …
80 generics  swift 

8
C # Generics는 위임 형식 제약 조건을 허용하지 않습니다.
C #에서 클래스를 정의 할 수 있습니까? class GenericCollection<T> : SomeBaseCollection<T> where T : Delegate 어젯밤 .NET 3.5에서이 작업을 수행 할 수 없었습니다. 나는 사용해 보았다 delegate, Delegate, Action<T> and Func<T, T> 이것이 어떤 식 으로든 허용되어야하는 것 같습니다. 내 EventQueue를 구현하려고합니다. 나는이 [원시적 인 근사화 마음]을하게되었습니다. internal delegate void …

7
C #에서 "T"는 무엇을 의미합니까?
저는 VB 배경 지식이 있으며 새 작업을 위해 C #으로 변환 중입니다. 나는 또한 일반적으로 .NET에서 더 나아지기 위해 노력하고 있습니다. 사람들이 게시하는 샘플에서 "T"라는 키워드가 많이 사용되는 것을 보았습니다. C #에서 "T"는 무엇을 의미합니까? 예를 들면 : public class SomeBase<T> where T : SomeBase<T>, new() 무엇을 T합니까? 왜 사용하고 …
79 c#  .net  generics 

4
컴파일 타임에 람다 리턴 유형이 검사되지 않는 이유는 무엇입니까?
사용 된 메소드 참조에는 리턴 유형이 Integer있습니다. 그러나 String다음 예 에서는 호환되지 않습니다 . with수동으로 캐스팅하지 않고 메소드 참조 유형을 안전하게 얻기 위해 메소드 선언 을 수정하는 방법 은 무엇입니까? import java.util.function.Function; public class MinimalExample { static public class Builder<T> { final Class<T> clazz; Builder(Class<T> clazz) { this.clazz = clazz; …

4
<의 차이점은 무엇입니까? 베이스 확장> 및 <T 확장베이스>?
이 예에서 : import java.util.*; public class Example { static void doesntCompile(Map&lt;Integer, List&lt;? extends Number&gt;&gt; map) {} static &lt;T extends Number&gt; void compiles(Map&lt;Integer, List&lt;T&gt;&gt; map) {} static void function(List&lt;? extends Number&gt; outer) { doesntCompile(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); compiles(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); } } doesntCompile() 컴파일하지 못했습니다 : Example.java:9: error: incompatible types: HashMap&lt;Integer,List&lt;Integer&gt;&gt; …

5
C #에서 일반 예외의 모든 변형을 잡는 방법
일반 예외 클래스의 모든 변형을 잡고 싶습니다. 여러 catch 블록없이 수행 할 수있는 방법이 있는지 궁금합니다. 예를 들어 예외 클래스가 있다고 가정 해보십시오. public class MyException&lt;T&gt; : Exception { public string MyProperty { get; } public MyException(T prop) : base(prop.ToString()) { MyProperty = prop?.ToString(); } } 그리고 2 개의 파생 …
22 c#  generics  exception 

1
유형 매개 변수가 메소드 매개 변수보다 더 강한 이유
왜 public &lt;R, F extends Function&lt;T, R&gt;&gt; Builder&lt;T&gt; withX(F getter, R returnValue) {...} 더 엄격한 public &lt;R&gt; Builder&lt;T&gt; with(Function&lt;T, R&gt; getter, R returnValue) {...} 이것은 컴파일시 람다 리턴 유형이 점검되지 않는 이유 에 대한 후속 조치 입니다. 나는 withX()같은 방법을 사용하여 발견했다. .withX(MyInterface::getLength, "I am not a Long") 원하는 컴파일 …

3
일치하는 여러 대상 유형이있는 람다 식에 대한 메서드 서명 선택
나는 질문 에 대답 하고 있었다 설명 할 수없는 시나리오에 부딪쳤다. 이 코드를 고려하십시오. interface ConsumerOne&lt;T&gt; { void accept(T a); } interface CustomIterable&lt;T&gt; extends Iterable&lt;T&gt; { void forEach(ConsumerOne&lt;? super T&gt; c); //overload } class A { private static CustomIterable&lt;A&gt; iterable; private static List&lt;A&gt; aList; public static void main(String[] args) { …
11 java  generics  lambda  javac  ecj 

1
컴파일러가 관련없는 인터페이스 유형으로 호출 될 때 클래스 유형 매개 변수를 사용하여이 일반 메소드를 선택하는 이유는 무엇입니까?
다음 두 클래스와 인터페이스를 고려하십시오. public class Class1 {} public class Class2 {} public interface Interface1 {} 왜 두 번째 호출 하는가 mandatory에 오버로드 된 메소드를 호출 Class2, 경우 getInterface1와 Interface1아무 관계가 없다 Class2? public class Test { public static void main(String[] args) { Class1 class1 = getClass1(); Interface1 interface1 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.