可以通过kotlin默认的getter和setter在Java中初始化Kotlin数据成员吗?

问题描述 投票:0回答:1

我有一个Kotlin数据成员类,默认的getter和setter:CurrentOrder.kt

class CurrentOrder {
private var currentOrderTime: String
get() = currentOrderTime
set(value){
    currentOrderTime = value
}

private var currentOrderPrice: String
get() = currentOrderPrice
    set(value){
        currentOrderPrice = value
    }
}

我想在java类中初始化:OrdersFragment.java

公共类OrdersFragment扩展Fragment {

RecyclerView recyclerView;
ArrayList<CurrentOrder> currentOrders;

public OrdersFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    getActivity().setTitle("Orders");
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_orders, container, false);
    recyclerView = (RecyclerView) v.findViewById(R.id.id_current_order_container);

    currentOrderInit(); // Initializing ArrayList<CurrentOrder>

    return v;
}

private void currentOrderInit() {
    currentOrders = new ArrayList<>();
    for (int i = 0; i < 2; i++){
        CurrentOrder currentOrder = new CurrentOrder();

        // How can I initialize these members?
    }

  }

}

我该如何初始化这些成员?可能吗?

java android kotlin getter-setter
1个回答
-1
投票

private访问器修改为public

  class CurrentOrder {
    public var currentOrderTime: String
    get() = currentOrderTime
    set(value){
        currentOrderTime = value
    }

    public var currentOrderPrice: String
    get() = currentOrderPrice
        set(value){
            currentOrderPrice = value
        }
    }

然后

CurrentOrder currentOrder = new CurrentOrder();
currenrOrder.setCurrentOrderTime(somevalue);
© www.soinside.com 2019 - 2024. All rights reserved.