का उपयोग करके ऑब्जेक्ट लोड करें यदि यह मामूली है या संभव नहीं है तो मुझे माफ़ कर दो लेकिन मुझे सोमवार सुबह का क्षण मिल रहा है।Gson
मैं ऐसी विधि बनाना चाहता हूं जो Gson
लाइब्रेरी से कुछ सेटिंग्स ऑब्जेक्ट्स लोड करने के लिए कुछ विधियों को लागू करे। असल में, मैं अलग सेटिंग्स का एक समूह वस्तुओं है, लेकिन मैं करने के लिए मैं कुछ ऐसा करना चाहते हैं प्रत्येक वर्ग के लिए लोड विधि ओवरराइड करने के लिए habe नहीं करना चाहती:
public class ConfigLoader {
public static void main(final String[] args) {
final ConfigurationSettings loadedConfigSettigs =
load("testSettings.json", ConfigurationSettings.class);
final AlternativeConfigurationSettings alternativeConfigSettigs =
load("testSettings2.json", AlternativeConfigurationSettings .class);
}
public T load(final InputStream inputStream, final Class<T> clazz) {
try {
if (inputStream != null) {
final Gson gson = new Gson();
final BufferedReader reader =
new BufferedReader(new InputStreamReader(inputStream));
return gson.fromJson(reader, clazz);
}
} catch (final Exception e) {
}
return null;
}
}
जहाँ मैं InputStream
में पारित कर सकते हैं और उस वस्तु का वर्ग जिसे मैं वापस करना चाहता हूं। क्या ऐसा करने का कोई आसान तरीका है (मैं प्रत्येक वर्ग के लिए एक विधि बनाना नहीं चाहता हूं जिसे मैं लोड करने में सक्षम होना चाहता हूं, न ही मैं प्रत्येक वर्ग के लिए एक विशिष्ट लोडर बनाना चाहता हूं)?
क्या समस्या है? केवल एक चीज जो आपके कोड में सही नहीं है ऑब्जेक्ट टाइपिंग है, क्योंकि यह "टाइप करने योग्य" नहीं है। आपको इसके बजाय सीधे टी वापस करना चाहिए। –
उस निरीक्षण को इंगित करने के लिए धन्यवाद। मैंने कोड में संशोधन किया है और यह दिखाने के लिए कुछ और संदर्भ दिया है कि मैं इसका उपयोग कैसे करना चाहूंगा। मैं मूल रूप से एक लोडर रखना चाहता हूं जो प्रत्येक वर्ग के लिए लोडर बनाने के बिना कक्षा को दिए गए किसी ऑब्जेक्ट को लोड करता है (क्योंकि मुझे 'कक्षा' विधि का उपयोग करना होगा)? –
ठीक है लेकिन यह काम करता है, ठीक है (इस तथ्य के अलावा कि आप इनपुटस्ट्रीम की बजाय स्ट्रिंग पास कर रहे हैं, लेकिन हमें आपका पॉइंट मिलता है)? (या फिर हमें बताएं कि आपको कौन सी समस्या है)। मुझे आप जो करने की कोशिश कर रहे हैं और जिस तरह से आप ऐसा करने के लिए प्रतीत होते हैं उसमें कोई समस्या नहीं दिखती है। तो, आपको क्या अवरुद्ध कर रहा है? –