मैं एक्शनस्क्रिप्ट 3 पृष्ठभूमि से आया हूं और यह मेरी पहली बार मेरी जिंदगी में किसी भी जावा को लिख रहा है। हैशटेबल्स फ्लैश में शब्दकोशों के समान दिखते हैं, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मैं उनका उपयोग सही तरीके से कर रहा हूं। मेरा मानना है कि हैशटेबल स्ट्रिंग्स को कुंजी और टाइपफेसेस के रूप में ऑब्जेक्ट्स के रूप में स्वीकार करने के लिए टाइप किया गया है। क्या ये सही है? क्या कोई अलग संग्रह उप-वर्ग है जो इस तरह के कुछ के लिए अधिक उपयुक्त होगा? हर तरह से, कृपया मेरे एन 00 बी जावा को फाड़ें। मुझे यह सीखना है।हैशटेबल संपत्ति भंडारण के लिए उपयुक्त है?
package com.typeoneerror.apps.app_name.utils;
import android.content.Context;
import android.graphics.Typeface;
import java.util.Hashtable;
public class FontRegistry
{
private static FontRegistry _instance;
private Context _context;
private Hashtable<String, Typeface> _fonts;
private FontRegistry()
{
_fonts = new Hashtable<String, Typeface>();
}
public static FontRegistry getInstance()
{
if (_instance == null)
{
_instance = new FontRegistry();
}
return _instance;
}
public void init(Context context)
{
_context = context;
}
public Typeface getTypeface(int resourceId)
{
String fontName = _context.getResources().getString(resourceId);
if (!_fonts.containsKey(fontName))
{
String fontPath = "fonts/" + fontName;
Typeface typeface = Typeface.createFromAsset(_context.getAssets(), fontPath);
_fonts.put(fontName, typeface);
}
return (Typeface)_fonts.get(fontName);
}
}
क्या रैफक ने कहा, यह ठीक है। कुछ और सुझाव: जब आप अंडरस्कोर छोड़ देते हैं (कृपया करें), तो आपको 'this.context = context' की आवश्यकता है। आप 'निजी अंतिम मानचित्र <स्ट्रिंग, टाइपफेस> फोंट = नया हैश मैप <स्ट्रिंग, टाइपफेस>() 'जैसे फ़ॉन्ट्स को प्रारंभ कर सकते हैं। यदि समरूपता थी, तो आप अपने आलसी सिंगलटन के साथ समस्याएं पा सकते हैं। चेतावनी पर स्विच करें, आपकी आखिरी कास्ट निश्चित रूप से अनावश्यक है। – maaartinus
क्या इस कक्षा तक पहुंच एकल- या बहु-थ्रेडेड होगी? मैं केवल इसलिए पूछता हूं कि 'getInstance() 'का वर्तमान कार्यान्वयन थ्रेड सुरक्षित नहीं है। –
@ dave.c मुझे स्वीकार करना है कि मुझे कोई जानकारी नहीं है। जैसा कि मैंने कहा, यह मेरा पहला समय जावा लिख रहा है, इसलिए उत्तर के रूप में उस पर कोई सलाह बहुत सराहना की जाएगी। – typeoneerror