2009-10-23 10 views
7

ग्रहण के नए प्रकार के (विंडो> Preferences> संहिता शैली> कोड टेम्पलेट्स> नई जावा फ़ाइलें) के लिए डिफ़ॉल्ट टेम्पलेट इस तरह दिखता है:ग्रहण में, मैं कक्षा/प्रकार टेम्पलेट में डिफ़ॉल्ट संशोधक कैसे बदलूं?

:

 
${filecomment} 
${package_declaration} 

${typecomment} 
${type_declaration} 

एक नया वर्ग बनाया जा रहा है, यह कुछ इस तरह दिखाई देंगे

package pkg; 

import blah.blah; 

public class FileName { 
    // Class is accessible to everyone, and can be inherited 
} 

अब, मैं अपने विश्वास में उत्कट कि का उपयोग के रूप में संभव के रूप में प्रतिबंधित किया जाना चाहिए हूँ, और जब तक स्पष्ट अनुमति दी विरासत मना किया जाना चाहिए, तो मैं ${type_declaration} बदलने के लिए final बजाय public के रूप में सभी वर्गों की घोषणा करना चाहते हैं:

package pkg; 

import blah.blah; 

final class FileName { 
    // Class is only accessible in package, and can't be inherited 
} 

ऐसा लगता है कि ऐसा करने से आसान कहा जाता है। एकमात्र चीज़ जो मुझे मिली है, वह 2004 question on Eclipse's mailing list है जिसे अनुत्तरित नहीं किया गया था।

तो, संक्षेप में प्रश्न: मैं ग्रहण में डिफ़ॉल्ट वर्ग/प्रकार संशोधक कैसे बदल सकता हूं?

यदि मैं मायने रखता हूं तो मैं ग्रहण गैलीलियो (3.5) का उपयोग कर रहा हूं।

उत्तर

1

ऐसा लगता है कि यह संभव नहीं है। ${type_declaration} आंतरिक सामान है।

आप क्या कर सकते हैं "हर जावा क्लास" -डिअलॉग में अंतिम चेकबॉक्स पर क्लिक करने के लिए आप क्या कर सकते हैं। लेकिन यह ऐसा कुछ नहीं है जिसे आप चाहते हैं।

+0

आप सही हैं। यह ऐसा कुछ नहीं है जिसे मैं करना चाहता हूं :) – gustafc

0

न्यू क्लास विज़ार्ड के साथ नई कक्षा बनाने के दौरान बस उचित पहुंच संशोधक की जांच करें।

New Java Class Wizard

+0

यही वह है जो मैं आज करता हूं। बात यह है कि यह मेरी पसंद को याद नहीं रखता है, इसलिए मैं इसे हर समय और फिर करना भूल जाता हूं। – gustafc

+1

@gustafc यदि आप इसे भूल जाते हैं तो आप चेकस्टाइल को चेतावनी दे सकते हैं। – starblue

+0

@starblue, यह एक अच्छी टिप है। धन्यवाद। – gustafc

0

हो सकता है कि यह आप में मदद मिलेगी?

eclipse\plugins\org.eclipse.jdt.ui_*.jar\templates\ 

Eclipse custom variable for java code templates

+0

वास्तव में, ऐसा लगता है कि ग्रहण टेम्पलेट्स को चुनता है। '$ {Type_declaration}' वहां नहीं है। मुझे संदेह करना शुरू हो रहा है कि यह घोषित किए जाने के बजाय उत्पन्न हुआ है। – gustafc

1

ठीक है, मुझे लगता है कि वहाँ किसी भी शांत जवाब है, तो क्या उस के बारे में "हैक" नहीं है?

${filecomment} 
${package_declaration} 

${typecomment} 
import invalid;/* ${type_declaration} */ 

final class ${type_name} { } 

तुम अब हिट नियंत्रण + शिफ्ट + हे आयात व्यवस्थित करने के लिए, पुराने प्रकार घोषणा गायब हो जाता है। स्वचालित करने के लिए कार्रवाई को सहेजने के लिए आप आयात को व्यवस्थित भी कर सकते हैं।

मुझे पता है कि यह बुरा है, लेकिन यह वही है जो आप चाहते हैं।

संपादित टेम्पलेट:

+0

अच्छा ... दिलचस्प विचार। दुर्भाग्यवश, यह सब कुछ 'अंतिम श्रेणी' के रूप में घोषित करता है, जिसमें इंटरफेस, एनम्स इत्यादि शामिल हैं, और यह विज़ार्ड में घोषित किसी भी सुपरक्लास/इंटरफेस को याद करता है। मुझे टिप्पणी में '$ {type_declaration}' भी शामिल करना होगा क्योंकि आप इसके बिना टेम्पलेट को सहेज नहीं सकते हैं। – gustafc

0

यहाँ मेरी समाधान नहीं है

${filecomment} 
${package_declaration} 

${typecomment} 
final class ${type_name} { 

    /* ${type_declaration} //delete */ 

    /** 
    * @see {@link Object#toString()} 
    * @return String representation of this instance. 
    */ 
    public String toString() { 
     return "some impl"; 
    } 

} 

टिप्पणी बाहर $ {type_declaration} क्योंकि यह आवश्यक है। आपके पास हटाने के लिए टिप्पणी है, लेकिन आवश्यकता हासिल की जाती है। क्षमा करें अगर यह 2 साल पुराना धागा है, लेकिन मेरे लिए यह अभी भी प्रासंगिक है।

+0

मिस्ड कोडवॉर का जवाब मिस्ड। यह मूल रूप से वही है। –

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