0
@AllArgsConstructor(onConstructor = @__({ @Inject }))
public class TransactionManager {

    private final TransactionHelper tnxHelper;

    public void createTransactions(List<Details> details) {
        tnxHelper.createTransactions(details); 
    }
}

@AllArgsConstructor(onConstructor = @__({ @Inject }))
public class TransactionHelper {

    private final A a;    
    private final B b;

    public void createTransactions(List<Details> details) {
        //Some logic
    }
}

所以在上面的代码中,我希望 TransactionManager 成为主类,并且与 Transaction 相关的每个交互都应该通过它,比如createTransactions.

那么我怎样才能使TransactionHelper隐藏?这样除了 没有人可以使用这个类TransactionManager吗?

还有什么方法可以只隐藏createTransactionsTransactionHelper而不是隐藏整个班级。

先感谢您!!

4

1 回答 1

1

嵌套类的使用是否解决了您的问题? https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

class TransactionManager {
  // you cannot use the class TransactionHelper outside the TransactionManagerClass 
  // you need an instance of TransactionManager to have an instance of TransactionHelper 
  // so within static methods here you cant use it directly
  private class TransactionHelper {
  }

  void dooo() {
    TransactionHelper t = new TransactionHelper();
  }
}
于 2022-01-12T10:42:11.000 回答