[英]Does Java have an “in” or “not in” operator similar to Python?
[英]Does Java have a similar post method diamond operator that C# has?
Unity 項目經常使用 C# 函數,這些函數在方法名稱后的菱形運算符中提供類型。 在 Unity 源代碼中,它是這樣定義的:
public static T FindObjectOfType<T>() where T : Object
{
return (T)FindObjectOfType(typeof(T), false);
}
其使用示例:
CanvasRenderer canvas = FindObjectOfType<CanvasRenderer>();
我的問題是,Java 語言有類似的結構嗎?
Java 也有類似的結構,但名稱“菱形運算符”是保留的(好吧,不是真正的“保留”,而是使用)用於稍有不同的東西。
在構造
final List<String> stringList = new ArrayList<>();
<>
被稱為“菱形運算符”(盡管“菱形形式”更正確),它是其他必需術語<String>
的快捷方式。
在 Java 中定義具有泛型參數或返回類型的方法看起來與 C# 略有不同:
public final <T,R> R doSomething( final T argument ) { … }
doSomething()
接受T
類型的參數並返回R
類型的結果,其中R
和T
不需要相互區分。
調用doSomething()
可能如下所示:
final var date = LocalDate.now();
final String result = doSomething( date );
您的 C# 方法FindObjectOfType<T>()
將在 Java 中聲明如下:
public final <T> T findObjectOfType( final Class<T> desiredType ) { … }
它會被這樣調用:
CanvasRenderer canvas = findObjectOfType( CanvasRenderer.class );
是的。 這些菱形運算符稱為泛型。 Java也有!
它們使用相同的 <> 語法。 您可以通過搜索“java泛型”在線找到更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.