經過很長時間我用了java,發現與其他語言不同,java不支持帶字符串的開關盒(僅適用於no和enums)。它背後的原因是什麼?如果其他語言輕鬆實現它,爲什麼不是java?帶字符串的開關盒Java
回答
此功能是在Java 7(於今年7月發佈)中實現的。他們爲什麼沒有早些實施呢?由於Sun收購了整個Sun,J7實際上被推遲了。
最新文件:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
我知道......他們爲什麼會阻止它...... – Ank 2012-01-12 20:53:54
正如我在編輯之後所說的那樣:Java的開發實際上被推遲了,因爲Sun被Oracle收購了。 – 2012-01-12 20:55:43
@Zenzen我認爲甲骨文收購了Java而不是Sun,或者它們是同一個東西? – fireshadow52 2012-01-12 20:59:45
您可以在switch語句中使用字符串作爲Java 7中
的如Java 7,你可以使用開關的情況下用繩子.. 見:java switch case
IMO ,Java的設計師聰明地忽略了切換字符串。每當你做一個字符串切換(並且,我承認,我有時也會這樣做),你應該考慮:
- 爲什麼我在這裏不使用多態?
- 至少,我應該使用一個枚舉?
完全同意!儘可能地忽略使用字符串切換。或者重新考慮你的系統的設計。 – 2015-02-23 04:44:03
打開用戶輸入比將其轉換爲枚舉更直接(使用開關可能?),然後打開該枚舉。它也使依賴週期變得更容易,並且更加靈活。 此外,枚舉只在Java 5中添加,所以最初的決定與他們無關:) – Elazar 2017-06-01 06:52:33
新的Java版本(JDK 7)需要很長時間才能發佈。這就是爲什麼你可能無法知道.... 下面是一個例子,如何使用字符串開關的情況下...
option = scanner.nextLine();
switch (option) {
case "1": System.out.println("Hello");break;
case "2": break;
case "3": break;
case "4": break;
case "5": break;
default: System.out.println("Invalid option. Please try again..."); break;
}
不是一個很好的例子 – 2015-04-01 10:22:01
不是很漂亮,但這裏是Java 6和波紋管的另一種方式:
String runFct =
queryType.equals("eq") ? "method1":
queryType.equals("L_L")? "method2":
queryType.equals("L_R")? "method3":
queryType.equals("L_LR")? "method4":
"method5";
Method m = this.getClass().getMethod(runFct);
m.invoke(queryField);
- 1. 將字符串作爲開關盒
- 2. 開關盒與字符串匹配
- 3. 開關盒用Java中的字符串 - garbagy?
- 4. BinaryTree - 帶開關盒
- 5. 帶gcd的開關盒
- 6. 帶有DialogTitleButton的開關盒
- 7. 帶字符串C的開關語句#
- 8. Java和開關盒
- 9. 開關盒內部的字符串返回null
- 10. 開關盒和用戶輸入字符串的整數輸入
- 11. Java字符開關
- 12. 從字符串打開彩盒
- 13. 帶功能的另一個開關盒
- 14. 帶三個參數的開關盒?
- 15. 帶顯示標籤的開關盒
- 16. 帶開關盒的吸氣功能?
- 17. 帶單選按鈕的開關盒
- 18. 而不是開關盒,更有效地選擇字符串
- 19. iOS:使用開關盒檢查字符串前綴?
- 20. 將開關盒撥入開關盒
- 21. java帶分隔符的字符串
- 22. 帶分隔符的Java字符串
- 23. 開關盒中的'END'關鍵字?
- 24. 帶數字的java字符串
- 25. 帶數字的Java分割字符串
- 26. 使用開關盒的Java計算器
- 27. Java的開關盒返回類型
- 28. java中的枚舉類型,開關盒
- 29. 空字符串ng開關
- 30. Java&XML - 帶有至XML的字符串的字符串
[開關與字符串在Java中聲明】(http://stackoverflow.com/questions/338206/switch-statement-with-strings-in-java) – 2012-01-12 20:53:13
感謝您的鏈接的可能重複。我在搜索這個問題之前,先搜索這個問題..但在我的搜索中沒有找到那個鏈接.. – Ank 2012-01-12 20:55:13
什麼語言允許switch語句中的字符串? – 2012-01-12 20:56:13