java - 如何向我的股票投资组合添加头寸,目前收到有关不兼容类型无法转换为 int 或 String 的错误

标签 java

我在将股票添加到投资组合时遇到问题。我尝试过不使用 new Stock,只使用 stock 而不是 stock.tickersymbol,但它仍然不起作用。我需要更改什么才能将库存和数量添加到仓位?

我收到的错误是

错误:不兼容的类型:库存无法转换为字符串

错误:不兼容的类型:Stock 无法转换为 int Positions.add(new Stock(stock.tickerSymbol), 数量);

  positions.add(new Stock(stock), quantity);

我正在努力让这条线正常工作。

positions.add(new Stock(stock.tickerSymbol), 数量);

public boolean buy(Stock stock, int quantity, double price) {
    double total = price * quantity;

    if (cash >= total) {
        cash -= total;
        positions.add(new Stock(stock.tickerSymbol), quantity);
        return true;
    }

    return false;        
}

以下是我的最小可行代码

import java.io.*;
import java.util.*;
import java.util.stream.*;
import org.junit.*;
import org.junit.runner.*;
import static org.junit.Assert.*;

class Stock {

  public String tickerSymbol;

  public Stock(String tickerSymbol) {
    this.tickerSymbol = tickerSymbol;
  }

}

class Position {

  public Stock stock;
  public int quantity;

  public Position(Stock stock, int quantity) {
    this.stock = stock;
    this.quantity = quantity;
  }

}

class Portfolio {



  public double cash;
  public List<Position> positions;


  public Portfolio(double cash, List<Position> positions) {
    this.cash = cash;
    this.positions = new ArrayList<>(positions);
  }

  /*
  If the buy is viable (sufficient cash), executes it and returns true,
  else returns false
  */
  public boolean buy(Stock stock, int quantity, double price) {



    double total = price * quantity;

    if (cash >= total)
    {
      cash -=total;
      positions.add(new Stock(stock.tickerSymbol), quantity);
      return true;

    }
    return false;

  }




}

最佳答案

如果 buy 方法要访问 Position 变量,则该方法必须是 Portfolio 类的一部分(我将继续假设它是...)。然后,您需要定义一个新的 Position 来添加到头寸列表中,因为这是对象 Position 的列表,而不是 Stock:

positions.add(new Position(stock, quantity));

关于java - 如何向我的股票投资组合添加头寸,目前收到有关不兼容类型无法转换为 int 或 String 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49000104/

相关文章:

java - 如何从 Liferay-Portal、服务器的 http 响应字段中删除 http header ?

java - 使用 Lucene 搜索带有空格的术语

java - 如何使用 Java stream api 过滤 map ?

java - Mockito mock() 和调用记录

java - 无法从 cron 运行 tomcat7 的 web 应用程序中的 java.class 文件

java - 通过 Gmail 发送电子邮件时出错

java - 在 Tomcat7 中获取 javax.mail.AuthenticationFailedException

java - 如何从我的 Java 应用程序检测网络中启动/停止的新服务器

Java 可调用的通用异常

java - 为什么我的第三首歌没有播放,我怎样才能让它播放?