मुझे गेटर्स और सेटर्स से भरी क्लास मिली है, इसलिए मैं घड़ियों की एक सूची बना सकता हूं और इसे मेरे बाकी ऐप तक पहुँचा सकता हूँ:
Watch.java :
public class Watch {
private String brand, mvmt, serial, urlLoc;
private int wr, year;
private double price;
//getters and setters
}
मैं एक सूची प्राप्त करने के लिए इसका उपयोग करना चाहता हूं:
package com.example.pat.watchproj;
import java.util.LinkedList;
public class WatchList extends LinkedList {
//set up the watch list so it can be accessed through the app
private static WatchList wlInst = new WatchList();
public static WatchList getInstance(){
if(wlInst == null){
wlInst = new WatchList();
}
return wlInst;
}
private WatchList(){
}
public static void setInstance(WatchList watchList){
wlInst = watchList;
}
}
यहाँ एक उदाहरण है कि मैं कैसे एक घड़ी जोड़ूंगा
public void addWatch(View view){
//initilize watch list and all edit texts
//will need to parsedouble and parseinteger
watchList = WatchList.getInstance();
Watch usrWatch = new Watch();
EditText addBrand = (EditText) findViewById(R.id.addBrand);
EditText addSerial = (EditText) findViewById(R.id.addSerial);
EditText addMvmt = (EditText) findViewById(R.id.addMvmt);
EditText addWr = (EditText) findViewById(R.id.addWr);
EditText addYear = (EditText) findViewById(R.id.addYear);
EditText addPrice = (EditText) findViewById(R.id.addPrice);
EditText addUrl = (EditText) findViewById(R.id.addUrl);
//add to object now
usrWatch.setBrand(addBrand.getText().toString());
usrWatch.setMvmt(addMvmt.getText().toString());
usrWatch.setSerial(addSerial.getText().toString());
usrWatch.setWr(Integer.parseInt(addWr.getText().toString()));
usrWatch.setPrice(Double.parseDouble(addPrice.getText().toString()));
usrWatch.setYear(Integer.parseInt(addYear.getText().toString()));
usrWatch.setUrlLoc(addUrl.getText().toString());
watchList.add(usrWatch);
WatchList.setInstance(watchList);
Toast.makeText(addWatch.this, "Watch added", Toast.LENGTH_SHORT).show();
}
इसलिए, मुख्यता में, जब मैं यह लिखता हूं:
public void onOption8 (MenuItem i){
//show most expensive
WatchList watchList = WatchList.getInstance();
int x = 0;
for(int a = 0; a < watchList.size(); a++) {
if (watchList.get(x).getPrice() < watchList.get(a).getPrice()) {
x = a;
}
}
}
तो उस रन के बाद, मुझे सबसे महंगी घड़ी का सीरियल पाने के लिए watchList.get (x) .getSerial () का उपयोग करने में सक्षम होना चाहिए। लेकिन Android स्टूडियो मुझे बता रहा है कि यह onOption8 में कठबोली विधि getPrice नहीं कर सकता है, और मुझे यकीन नहीं है कि मैं गलत कहां जा रहा हूं। मुझे बताएं कि क्या मैं स्पष्ट नहीं हूं / अधिक जानकारी प्रदान कर सकता हूं। धन्यवाद
2 जवाब
आपने अपने कस्टम LinkedList
कार्यान्वयन के लिए एक प्रकार प्रदान नहीं किया है; जैसे कि get(x)
Object
लौट रहा है। WatchList
वर्ग घोषणा को इसमें बदलें:
public class WatchList extends LinkedList<Watch> {
...
}
यह त्रुटि संभवतः इसलिए होती है क्योंकि आपने वॉचलिस्ट क्लास को अभी तक एक प्रकार का पैरामीटर नहीं दिया है। OnOption8 में, कंपाइलर को यह नहीं पता होता है कि आपके द्वारा देखा गया वॉचलिस्ट टाइप किया गया है
सुनिश्चित करें कि आप या तो केवल वॉच का लिंक्डलिस्ट बनाएं, जैसे कि
LinkedList<Watch> ll = new LinkedList<Watch>()
या जो आप निर्दिष्ट करते हैं कि वॉचलिस्ट वास्तव में वॉच ऑब्जेक्ट्स का लिंक्डलिस्ट है, और आपके वॉचलिस्ट क्लास में और कुछ नहीं।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।