让我们说我有一个实例化并使用另一个类的类。从第二节课开始,是否可以访问第一节课? 例如:
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { printOut } from './../actions/actions.js';
import InputComponent from './../components/inputComponent.js';
import PropTypes from 'prop-types';
const mapDispatchToProps = (dispatch) => {
return {
onClick: (input) => dispatch(printOut(input))
}
}
export default connect(null, mapDispatchToProps)(InputComponent);
我知道如何使用以下内容获取该对象的类:
public class A {
public B obj = new B();
public void something() {
b.somethingElse();
}
}
public class B {
public void somethingElse() {
A owner = getCallingObject();
//the object of class A that called b.somethingElse() is now stored in owner
}
public Object getCallingObject() {
// ?????
// returns the A that instantiated/owns this B
}
}
我从另一个问题得到:How to get the caller class in Java。 有没有办法获得指向调用者对象的指针?
答案 0 :(得分:1)
如果您控制源代码,并且B
只能由A
对象创建,则可以使B
成为非静态内部类,然后您将自动通过A.this
指针获取对该类创建者的引用。请注意,这不是B::somethingElse()
的来电者,而是B
的创建者,根据您的使用情况,它可能是也可能不是同一个。
public class A {
public B obj = new B();
public void something() {
obj.somethingElse();
}
void thereAndBackAgain() {
}
public class B {
public void somethingElse() {
A owner = A.this;
owner.thereAndBackAgain();
}
}
}