2012-03-28 16 views
15

मैं जो कोई वास्तविक विधि"() वी" वर्ग हस्ताक्षर में क्या मतलब है?

CtConstructor c = CtNewConstructor.make (argTypes, null, newClass); 

जब मैं इस वर्ग के हस्ताक्षर बुझाने के लिए

c.getSignature(); 

मैं

public Echo()V 

मैं कोशिश कर रहा हूँ है Javassist के साथ एक निर्माता बनाया उलझन में क्या है "वी" का मतलब है? मुझे या तो सार्वजनिक इको() की उम्मीद थी; या कुछ समान ...

उत्तर

36

JVM विधि हस्ताक्षर हैं, जिनमें से कंस्ट्रक्टर्स एक विशेष मामला माना जाता है भंडारण की एक कॉम्पैक्ट रास्ते का उपयोग करता है निर्धारित करता है।

अपने उदाहरण के लिए:

  • ()
  • V इंगित करता है कि यह कुछ भी नहीं देता है एक विधि कोई तर्क लेने इंगित करता है

योजना के अन्य भागों हैं:

  • B - बाइट
  • C - चार
  • D - डबल
  • F - नाव
  • I - पूर्णांक
  • J - लंबी
  • S - कम
  • V - शून्य
  • Z - बूलियन
  • [ - ब्रैकेट निम्नलिखित बात की सरणी
  • L [वर्ग के नाम] ; - इस वर्ग के उदाहरण, डॉट्स स्लैश
  • ( [args] ) [वापसी प्रकार] बनने के साथ - विधि हस्ताक्षर

उदाहरण के लिए:

public int foo(String bar, long[][] baz) 

बन जाएगा

 
(Ljava/lang/String;[[J)I 

सूर्य^एच^एच^HOracle की वेब साइट पर spec देखें

+0

क्या आप मुझे बता सकते हैं कि '^ एच^एच^H' हिस्सा मतलब है? –

+11

यह एक मजाक पर एक लंगड़ा प्रयास था। Http://en.wikipedia.org/wiki/Backspace#.5EH –

+0

देखें :) नहीं, मुझे पता है कि आप उन तीनों वर्णों को मिटाना चाहते हैं। लिंक के लिए धन्यवाद! :) –

3

वी प्रकार के हस्ताक्षर में वी का मतलब शून्य प्रकार है। बाइटकोड अन्य तरीकों से कन्स्ट्रक्टर को अलग नहीं करता है (विशेष विधि नाम का उपयोग करने के अलावा)।

3

"वी" परिणाम प्रकार "शून्य"

संबंधित मुद्दे