我想在我的Android应用中扩展应用程序.我这样做是为了创建一个名为MyApplication的扩展Application对象并将其添加到清单中.
我现在想添加一些getter和setter来保存一些信息.看起来我需要将应用程序Context传递给任何不包含Context的类.
例如,假设我创建了一个名为MyObject的类(在自己的java文件中):
public class MyObject {
public void doStuff() {
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我如何从doStuff()访问MyApplication?看起来我需要将应用程序Context传递给MyObject.这是典型的吗?是否有泄漏的可能性?
另外,为了确保我清楚,MyApplication(以及其中的变量)是否会在整个应用程序的生命周期中存在?无论哪种方式都没关系.我只是想确保在需要时考虑到这一点.
最后,任何链接到一些示例源以显示扩展应用程序有用的不同内容将是值得赞赏的.
我用Java编写了一个小程序,有一些我不明白的东西.
我编写的程序有3个类kingClass,masterClass和workClass.workClass扩展了masterClass.
程序:在主类(kingClass)中我已经声明了masterClass和workClass,并且使用masterClass我给变量x和y赋值.在kingClass的最后,我调用了一个addNum函数,该函数对masterClass中的两个数字求和.
现在的问题是:我预计当我运行程序时,它会给我一个我用输入给出的两个数字的总和,而不是我在构造函数中给出的值的总和.
如何编写这个程序,以便addNum返回我输入的数字之和的值.
抱歉英文不好,谢谢..
kingClass
public class kingClass
{
public static void main(String[] args)
{
masterClass mClass=new masterClass();
mClass.setX(10);
System.out.println(mClass.getX());
mClass.setY(5);
System.out.println(mClass.getY());
workClass wClass = new workClass();
System.out.println(wClass.addNum());
}
}
Run Code Online (Sandbox Code Playgroud)
硕士课
public class masterClass
{
private int x;
private int y;
masterClass()
{
x=0;
y=0;
}
public void setX(int a) {x=a;}
public void setY(int a) {y=a;}
public int getX() {return x;}
public int getY() {return y;}
}
Run Code Online (Sandbox Code Playgroud)
workClass
public class workClass extends masterClass
{
int num=getX()+getY();
public int …Run Code Online (Sandbox Code Playgroud) 我想知道如何覆盖indexOf()子类中的方法ArrayList.我需要使用与私有瞬态elementData var 相同的访问权限.
我该如何解决我的设计?
编辑:它是否是一个有效的解决方案,将对elementData [i]的调用更改为类似的this.get(i)(实际上是允许的?).它会破坏或破坏逻辑吗?
我不允许修改外部API的服务
MyClass instance = ServiceUtil.getThing();
Run Code Online (Sandbox Code Playgroud)
我想扩展这个返回的类和添加/覆盖一个方法,但留下其他人,比如150个方法.
private class MyWrapperClass extends MyClass(){
public MyWrapperClass(){super();}
@Override public String toString(){ return "Blocked toString"; }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法从返回的MyClass实例强制这个"强制转换"到我新的特定子类型?
注意:请不要建议制作构造函数的方法,传递原始对象并且必须复制并实现150个方法来调用包装对象
我正在尝试从Python Imaging Library向Image类添加一个新方法.我想要一个名为DilateImage的新类,它与原始的Image类完全相同,除了它还包含一个dilate()函数,该函数在一个实例上执行时修改它.这是我的示例代码(不起作用):
import Image
def DilateImage(Image):
def dilate(self):
imnew = self.copy()
sourcepix = imnew.load()
destpix = self.load()
for y in range(self.size[1]):
for x in range(self.size[0]):
brightest = 255
for dy in range(-1,2):
for dx in range(-1,2):
try:
brightest = min(sourcepix[x+dx,y+dy], brightest)
except IndexError:
pass
destpix[x, y] = brightest
Run Code Online (Sandbox Code Playgroud)
当我尝试使用这个新的类类型来创建一个使用基类"open"函数的实例时,它失败了:
>>> test = DilateImage.open("test.jpg")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'open'
Run Code Online (Sandbox Code Playgroud) 我想向UIView添加一个属性.我知道我可以继承一个UIView但是因为我想添加一个属性我想要扩展它.
我试着这样:
@interface UIView (Util)
@property(nonatomic, assign) BOOL isShow;
@end
@implementation UIView (Util)
@dynamic isShow;
-(void)setIsShow:(BOOL)isShow{
self.isShow = isShow;
}
@end
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它引发了一个例外:Thread 1: EXC_BAD_ACCESS(code=2,address,...)
我无法理解包含和扩展关系的工作原理.假设我有一个在线购物应用程序.该应用程序允许您在未经过身份验证的情况下添加/检索购物车中的商品.这是"订单"场景:客户点击订单按钮.系统检查用户是否已通过身份验证.如果用户通过身份验证,系统将显示购买页面,否则用户将被重定向到身份验证页面.我想知道我的"身份验证"用例是否包含在"订单"用例中,如果是这样,为什么?(我问这个问题,因为如果用户已经过身份验证,则无需进行身份验证.)抱歉,我的英文
我需要理解为什么:
years = range(2010,2016)
years.append(0)
Run Code Online (Sandbox Code Playgroud)
是可能的,返回:
[2010,2011,2012,2013,2014,2015,0]
Run Code Online (Sandbox Code Playgroud)
和
years = range(2010,2016).append(0)
Run Code Online (Sandbox Code Playgroud)
要么
years = [0].extend(range(2010,2016))
Run Code Online (Sandbox Code Playgroud)
不起作用?
我知道这是我收到的消息中的类型错误.但是我想对此背后有更多的解释.
我的尝试:
squares = [2**2, 3**2, 4**2, 5**2, 6**2, 7**2, 8**2, 9**2]
print(squares)
squares[:1].extend([1])
print(squares)
Run Code Online (Sandbox Code Playgroud)
输出
[4, 9, 16, 25, 36, 49, 64, 81]
[4, 9, 16, 25, 36, 49, 64, 81]
那么它可以是:
[4, 1, 9, 16, 25, 36, 49, 64, 81]
这是我想要做的事情的一个简化示例(在现实世界中将有一个更大的数组要扩展等等)。
如果您有任何建议,请支持。
Java 类如何扩展 Kotlin 库?
我明白所有 kotlin 类都是最终的。
我有库,我需要重写一些方法。但是当我扩展库时,我收到错误
public class Editor extends EditorLibrary //error Cannot inherit from final
Run Code Online (Sandbox Code Playgroud)
有机会延长 kotlin 最后一堂课吗,因为我无法将其更改为开放?
我有名为"Shapes"的 Java超类和名为"triangle"和"circle"的 2个子类.
我必须在Shapes中创建一个方法来计算创建的对象(三角形或圆形)的区域,如下所示:
公共双区域形状(双倍的东西)
我不确定参数是什么(所以我放了些东西......).因为公式会根据您要创建的对象类型而有所不同; 如果它是一个矩形,你将需要长度和宽度.如果它是一个圆圈,你将需要半径,所以我不知道如何从那里继续,因为我不确定我是否需要一个"if语句"来确定我创建了什么样的对象?
教Java的资源在是否可以覆盖父类的方法以及同时从子类中创建新方法的问题上似乎有冲突的答案。当我尝试以下操作时:
class ABC{
//Overridden Method
public void disp(){
System.out.println("disp() method of parent");
}
}
class DEF extends ABC{
//Overriding Method
public void disp(){
System.out.println("disp() method of child");
}
//new method in the subclass
public void newMethod(){
System.out.println("new method of child class");
}
public static void main(String args[]){
ABC obj = new ABC();
obj.disp();
ABC obj2 = new DEF();
obj2.disp();
obj2.newMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
Java引发“找不到符号”错误。有什么我想念的吗?一次不能同时做这两项似乎很奇怪,但我似乎无法逃脱这一错误。
我正在尝试以如下方式扩展列表列表:
# Consider the following list of lists
l_Of_l = [ [1], [2], [3], [4], [5], [6], [7]]
Run Code Online (Sandbox Code Playgroud)
期望的结果是:
l_extended = [ [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7]]
Run Code Online (Sandbox Code Playgroud)
所以基本上列表的大小在累积扩展后保持不变。
编辑:
这是我最初所做的:
l_Of_l = [ [1], [2], [3], [4], [5], [6], [7]]
lista = []
for i in l_Of_l:
lista.extend(i)
print(list([i for i in lista]))
Run Code Online (Sandbox Code Playgroud)
但后来的结果是:
[1]
[1, 2] …Run Code Online (Sandbox Code Playgroud) extend ×13
java ×6
python ×4
class ×3
list ×3
inheritance ×2
overriding ×2
android ×1
append ×1
arraylist ×1
arrays ×1
collections ×1
dynamic ×1
extends ×1
include ×1
ios ×1
kotlin ×1
python-3.x ×1
subclassing ×1
typeerror ×1
uiview ×1
uml ×1
use-case ×1