java একটি জাভা জেনেরিক ক্লাস তৈরি করার সময় কোণ বন্ধনী একটি tilde কি?



generics intellij-idea (4)

ইন্টেলিজ আইডিয়া ইন, ~ এখানে:

Set<String> associations = new LinkedHashSet<~>();

মানে String , যা বাম দিকে ঘোষণা হিসাবে একই।

আমি কিছু JMockit উদাহরণের মাধ্যমে পড়া ছিল এবং এই কোড পাওয়া যায় নি:

final List<OrderItem> actualItems = new ArrayList<~>();

জেনেরিক আইডেন্টিফায়ার মধ্যে tilde কি মানে? আমি এটা unary bitwise না অপারেটর জানি, কিন্তু আমি এখানে একটি অপারেড দেখতে না।

এছাড়াও, আমি এটি কম্পাইল করার চেষ্টা করেছি এবং একটি ত্রুটি পেয়েছিলাম। আমি শুধু কিছু অনুপস্থিত?


আমি মনে করি যে কোনটি টাইপ যা শর্ট্যান্ডেন্ড, এই ক্ষেত্রে OrderItem


যদি একটি tilde ছিল না, আমি বলতে চাই, কোড ইতিমধ্যে জাভা 7 ছিল। জাভা 7 হীরা অপারেটর অনুমতি দেয় তাই এটি বৈধ জাভা কোড হবে / হবে:

Map<String, List<String>> map = new HashMap<>();

(কিন্তু - এই সিনট্যাক্স সঙ্গে কোন tilde)


এটি "ঘোষণা হিসাবে একই" জন্য একটি শর্ট্যান্ড হয়।

কিছু আইডিই, উদাহরণস্বরূপ IntelliJ এই ব্যবহার।

ডিস্কের ফাইলগুলিতে এই নোটেশন নেই, যা IDE GUI এ শুধুমাত্র একটি কম্প্যাকশন।





tilde