मैं वास्तव में एक मुद्दा है, जो बहुत विशिष्ट है में भाग लिया है। यह सिर्फ जावा 8 (नैशर्न का उपयोग करके) में प्रकट होता है, लेकिन जावा 6 में नहीं (राइनो का उपयोग करके)। यदि जावास्क्रिप्ट के माध्यम से जावा ऑब्जेक्ट के इंस्टेंस वैरिएबल तक पहुंचने का प्रयास किया जाता है, तो []
ऑपरेटर इसके बजाय विधि उदाहरण देता है।
के मैं निम्नलिखित जावा घोषणा चल रहा हूँ लगता है:
class MyClass {
private boolean isSet=false;
public boolean isSet() { return isSet; }
}
अगर मैं जावास्क्रिप्ट में ऐसे वर्ग की एक वस्तु में हेरफेर, और फिर []
ऑपरेटर के साथ यह तक पहुँचने का प्रयास, मैं विधि संदर्भ मिलता है।
var obj = new MyClass();
var myfields = (myclass.getClass()).getDeclaredFields();
var myfieldname = myfields[0].name;
// The following prints the method declaration, not the boolean value:
// [jdk.internal.dynalink.beans.SimpleDynamicMethod boolean MyClass.isSet()]
println(obj[myfieldname]);
अद्यतन: जाहिर है Nashorn's method overloading resolution mechanism ("परोक्ष" या गैर जानबूझकर) ही नाम के साथ उदाहरण के क्षेत्रों पर बहस के बिना तरीकों को उच्च महत्व देता है।
आपने इसे अपने आप क्यों नहीं किया? :) –
सी # में इसकी अनुमति नहीं है। –