Bu hatayı almaya devam ediyorum ancak kodumda herhangi bir mantıksal hata göremiyorum. Loop NullPointerException ile ArrayList Search
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
private double getValueOrDefault(String symbol, double defaultValue) {
double value = getValue(symbol);
if (value != -1)
return value;
else
return defaultValue;
}
public void createStocks() {
// try get stock realtime values
stocks.add(new TechStock("BB", 30.3));
stocks.add(new TechStock("GOOG", getValueOrDefault("GOOG", 5.8)));
stocks.add(new TechStock("AMZN", getValueOrDefault("AMZN", 6.3)));
stocks.add(new FinanceStock("GLNG", getValueOrDefault("GLNG", 121)));
}
public static double getValue(String symbol) {
// read data
try {
URL url = new URL(API_URL.replace("XXX", symbol));
Scanner s = new Scanner(url.openStream());
// find price
while (s.hasNextLine()) {
String line = s.nextLine();
if (line.startsWith("\"price\"")) {
// split shenanigans
String[] f = line.split("\"");
return Double.parseDouble(f[3]);
}
}
// if we reached here: the stock is invalid
return -1;
} catch (Exception ex) {
ex.printStackTrace();
}
return -1;
}
public class StockFrame extends Frame
{
private int amount;
private Portfolio portfolio;
private ArrayList <StockMarket> stocks = new ArrayList<StockMarket>();
private TextArea stockDetails;
private TextField purchaseCode;
private boolean found = false;
private int locateStock() {
for(int i = 0; i<stocks.size(); i++) {
if(stocks.get(i).getCode().equals(purchaseCode.getText())) {
return i;
}
}
return -1;
}
private void a() {
int position = locateStock();
if(position != -1){
StockMarket bs = stocks.get(position);
.....
}
Ben 1 ila değişen çalıştı ama ben hala
NullPointerException
alırlar. Hata,
int position = locateStock();
adresinde görünüyor, ancak emin değilim. Eğer programın yürütülmesinde bu noktada beyan edilmiş bir nesneyi referans çalıştığınızda
Yeterli bilgi verdiğinizi düşünüyor musunuz? –
Bu bağlantıya bakın: http://stackoverflow.com/q/218384/3973077 –
Gelecekteki referanslar için, tüm yığını göstermek ve hangi kod satırına işaret etmek her zaman en iyisidir. Hata tanımınızla tam olarak nerede olduğunu bilmiyoruz. Özellikle zor çünkü tüm kodu yapıştırmadınız ve sadece NullPointerException'ın nerede olabileceğini tahmin ediyoruz. –