Tag: 子类

从一个超类中获取一个子类的名字

比方说,我有一个名为Entity的基类。 在那个类中,我有一个静态方法来检索类名: class Entity { public static String getClass() { return Entity.class.getClass(); } } 现在我有另一个课程扩展。 class User extends Entity { } 我想获得用户的类名称: System.out.println(User.getClass()); 我的目标是看到“com.packagename.User”输出到控制台,但是我将以“com.packagename.Entity”结束,因为实体类是直接从静态方法引用的。 如果这不是一个静态方法,可以通过在Entity类中使用this关键字来轻松解决(例如: return this.class.getClass() )。 但是,我需要这种方法保持静态。 有关如何解决这个问题的任何build议?

Swift:自定义ViewController初始值设定项

你如何添加自定义初始化器到Swift中的UIViewController子类? 我创build了一个UIViewController的子类,如下所示: class MyViewController : UIViewController { init(leftVC:UIViewController, rightVC:UIViewController, gap:Int) { self.leftVC = leftVC; self.rightVC = rightVC; self.gap = gap; super.init(); setupScrollView(); setupViewControllers(); } } 当我运行它时,我得到一个致命的错误: 致命错误:对类“MyApp.MyViewController”使用未实现的初始化程序'init(nibName:bundle :)' 我读过的地方,当添加一个自定义的初始化,还必须重写init(coder aDecoder:NSCoder)所以让我们重写该init ,看看会发生什么: override init(coder aDecoder: NSCoder) { super.init(coder: aDecoder); } 如果我添加这个,Xcode抱怨self.leftVC is not initialized at super.init call 。 所以我想这也不是解决scheme。 所以我想知道如何将自定义初始化器正确地添加到Swift中的ViewController子类(因为在Objective-C中,这似乎不成问题)?

在Python中重新分类一个实例

我有一个由外部图书馆提供给我的课程。 我已经创build了这个类的一个子类。 我也有一个原始类的实例。 我现在想把这个实例变成我的子类的一个实例,而不改变实例已经有的属性(除了那些我的子类覆盖的属性)。 以下解决scheme似乎工作。 # This class comes from an external library. I don't (want) to control # it, and I want to be open to changes that get made to the class # by the library provider. class Programmer(object): def __init__(self,name): self._name = name def greet(self): print "Hi, my name is %s." % […]

如何在运行时检查子类是否是类的实例?

在Android应用程序testing套件中,我有一个像这样的类,其中B是一个视图: public class A extends B { … etc… } 现在我有一个可能包含A对象的视图对象列表,但在这种情况下,我只关心它们是否是子类或“ B ”的实例。 我想要做一些事情: ArrayList<View> viewList = getViews(); Iterator<View> iterator = viewList.iterator(); while (iterator.hasNext() && viewList != null) { View view = iterator.next(); if (view.getClass().isInstance(B.class)) { // this is an instance of B } } 问题是,当遇到一个A对象时,它不计算为“ B实例”。 有没有办法做isSubclassOf什么的?

添加圆angular到所有UIImageViews

我想为我的项目中的所有UIImageView添加一些圆angular。 我已经得到了代码的工作,但不得不将其应用于每个图像; 我应该inheritanceUIImageView添加这个? 如果是这样,有人可以给我一些指导如何做到这一点? 这是代码 – (void)viewDidLoad { [super viewDidLoad]; NSString *mainpath = [[NSBundle mainBundle] bundlePath]; welcomeImageView.image = [UIImage imageWithContentsOfFile:[mainpath stringByAppendingString:@"/test.png"]]; welcomeImageView.layer.cornerRadius = 9.0; welcomeImageView.layer.masksToBounds = YES; welcomeImageView.layer.borderColor = [UIColor blackColor].CGColor; welcomeImageView.layer.borderWidth = 3.0; CGRect frame = welcomeImageView.frame; frame.size.width = 100; frame.size.height = 100; welcomeImageView.frame = frame; }

我如何检查(在运行时)如果一个类是另一个类的子类?

假设我有一套西装和四套西装:心,黑桃,钻石,俱乐部。 class Suit: … class Heart(Suit): … class Spade(Suit): … class Diamond(Suit): … class Club(Suit): … 我有一个方法接受一个诉讼作为一个参数,这是一个类对象,而不是一个实例。 更确切地说,它可能只能得到四个值之一:心,黑桃,钻石,俱乐部。 我怎么能做出一个确保这样的事情的断言? 就像是: def my_method(suit): assert(suit subclass of Suit) … 我正在使用Python 3。

如何testing一个Java类是否在运行时扩展另一个类?

如何testinga是否是b的子类? Class<?> a = A.class; Class<?> b = B.class;

Swift语言中的抽象类

有没有办法在Swift语言创build一个抽象类,或者这是一个像Objective-C的限制? 我想创build一个类似于Java定义为抽象类的抽象类。

为什么不自动调用Python的超类__init__方法?

为什么Pythondevise者决定,子类的__init__()方法不像其他一些语言那样自动调用其超类的__init__()方法? Pythonic和推荐的成语真的如下? class Superclass(object): def __init__(self): print 'Do something' class Subclass(Superclass): def __init__(self): super(Subclass, self).__init__() print 'Do something else'

你如何在Python中使用省略号切片语法?

这出现在Python的隐藏function ,但我看不到很好的文档或例子,解释如何function的作品。