Kotlin 数据成员可以通过 kotlin 默认值 getter 和 setter 在 java 中初始化吗?
Can Kotlin data members initialised in java by kotlin default getter and setter?
我有一个 Kotlin 数据成员 Class,默认为 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 class 中初始化:OrdersFragment.java
public class OrdersFragment 扩展片段 {
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?
}
}
}
如何初始化这些成员?可能吗?
将 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);
我有一个 Kotlin 数据成员 Class,默认为 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 class 中初始化:OrdersFragment.java
public class OrdersFragment 扩展片段 {
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?
}
}
}
如何初始化这些成员?可能吗?
将 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);