Search code examples
javaandroidkotlingetter-setter

Can Kotlin data members initialised in java by kotlin default getter and setter?


I have a Kotlin Data Member Class with default getter and 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
    }
}

and i want to initialise in java class: OrdersFragment.java

public class OrdersFragment extends 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?
    }

  }

}

How can I initialize these members ? is it possible?


Solution

  • Modify private accessors to public

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

    Then

    CurrentOrder currentOrder = new CurrentOrder();
    currenrOrder.setCurrentOrderTime(somevalue);