में लेज़ी अनुकरण मैं जावा में Lazy<T>
अनुकरण करने के लिए निम्नलिखित कोड लिखा है:Java8
import java.util.function.Supplier;
public class Main {
@FunctionalInterface
interface Lazy<T> extends Supplier<T> {
Supplier<T> init();
public default T get() { return init().get(); }
}
static <U> Supplier<U> lazily(Lazy<U> lazy) { return lazy; }
static <T>Supplier<T> value(T value) { return()->value; }
private static Lazy<Thing> thing = lazily(()->thing=value(new Thing()));
public static void main(String[] args) {
System.out.println("One");
Thing t = thing.get();
System.out.println("Three");
}
static class Thing{ Thing(){System.out.println("Two");}}
}
लेकिन मैं निम्नलिखित चेतावनी मिलती है:
के अनुरूप है"मुख्य में मूल्य
(T)
(com.company.Main.Thing
) के लिए लागू नहीं किया जा सकता है कारण: प्रकार चर का कोई उदाहरण (रों) (रों) टी मौजूद ताकिSupplier<T>
Lazy<Thing>
"
क्या आप कृपया मुझे यह जानने में मदद कर सकते हैं कि समस्या क्या है? अग्रिम धन्यवाद!
[टेम्पलेट] का पालन करें (https://stackoverflow.com/a/29141814/2711488) * कड़ाई से * ... – Holger