我想阅读文件并处理它们.每次迭代都处理一个文档.
哪种代码更好?
1.
BufferedReader br;
for(File f : files)
{
br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
2.
for(File f : files)
{
BufferedReader br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
我的观点是哪一个在空间和速度方面更有效率?
我创建了一个具有默认值属性的类.在对象生命周期的某个时刻,我想将对象的属性"重置"回实例化对象时的属性.例如,假设这是类:
public class Truck {
public string Name = "Super Truck";
public int Tires = 4;
public Truck() { }
public void ResetTruck() {
// Do something here to "reset" the object
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在某些时候,后Name和Tires性质已经改变,该ResetTruck()方法可以称为和属性将被分别重置回"超级卡车"和4.
将属性重置为最初的硬编码默认值的最佳方法是什么?
假设我上课了C.
我可以编写o = C()创建实例C并将其分配给o.
但是,如果我想将类本身分配给变量然后实例化它,该怎么办?
例如,假设我有两个类,例如C1和C2,我想做类似的事情:
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse.instantiate()
Run Code Online (Sandbox Code Playgroud)
实际的语法是instantiate()什么?打个电话__new__()好吗?
我看到另一个开发人员编写的代码看起来像这样:
var stringBuilder = new StringBuilder();
if(stringBuilder == null)
{
// Log memory allocation error
// ...
return;
}
Run Code Online (Sandbox Code Playgroud)
(这是代码中的所有地方)
问题1:该错误记录代码是否会被调用?如果没有记忆,那么System.OutOfMemoryException第一行就不会被抛出?
问题2:对构造函数的调用是否可以返回null?
假设我获得了我作为一个类的名称String.如何使用该字符串中包含的名称实例化该类?我知道它将来自某个父类,但实际的类会有所不同.
我的代码有3个类n_hexa,n_octa,n_bin.代码在这里
switch(choice)
{
case 1: cin>>n;
n_hexa nx(n);
break;
case 2: cin>>n;
n_octa no(n);
break;
case 3: cin>>n;
n_bin nb(n);
break;
}
Run Code Online (Sandbox Code Playgroud)
在编译它时,为n_octa行提供消息" n_hexa的初始化 "
我正在运行列表片段程序,在运行时我得到以下错误.
错误:
**02-09 09:03:40.213: ERROR/AndroidRuntime(572): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{ni.android.Fragment/ni.android.Fragment.Fragment}: java.lang.ClassNotFoundException: ni.android.Fragment.Fragment in loader dalvik.system.PathClassLoader[/data/app/ni.android.Fragment-1.apk]**
Run Code Online (Sandbox Code Playgroud)
我不知道原因.我的程序包含三个类 - DetailsFragment.java,FragmentsTitles.java和Shakespear.java可以帮助我任何人....
我调查java内部类.
我写了一个例子:
public class Outer {
public Outer(int a){}
public class Inner {
public Inner(String str, Boolean b){}
}
public static class Nested extends Inner{
public static void m(){
System.out.println("hello");
}
public Nested(String str, Boolean b , Number nm) { super("2",true); }
}
public class InnerTest extends Nested{
public InnerTest(){ super("str",true,12); }
}
}
Run Code Online (Sandbox Code Playgroud)
我使用以下字符串从main调用它:
new Outer(1).new Inner("",true);
Run Code Online (Sandbox Code Playgroud)
我看到编译错误:
java: no enclosing instance of type testInheritancefromInner.Outer is in scope
Run Code Online (Sandbox Code Playgroud)
你能解释一下这种情况吗?
UPDATE

我可以在ObjC中从string中实例化类.例如,我通过子类化UITableViewCell定义了新的DBCell类,并使用这些代码从name实例化类:
DBCell *cell=[tableView dequeueReusableCellWithIdentifier:cellClassname];
if (cell==nil) {
Class cellClass=NSClassFromString(cellClassname);
cell=[cellClass alloc];
cell=[cell initWithStyle:cellStyle reuseIdentifier:cellClassname];
}
Run Code Online (Sandbox Code Playgroud)
现在我需要将代码迁移到Swift,我在Swift中重新定义了DBCell类:
class DBCell: UITableViewCell {
var label:String?
var key:String?
var managedObject:NSManagedObject?
var delegate:AnyObject?
convenience override init(style: UITableViewCellStyle, reuseIdentifier: String!) {
self.init(style: style, reuseIdentifier: reuseIdentifier)
self.textLabel.font=UIFont.preferredFontForTextStyle(UIFontTextStyleCaption1)
self.backgroundColor=UIColor.blackColor()
self.textLabel.backgroundColor=UIColor.blackColor()
}
}
Run Code Online (Sandbox Code Playgroud)
但是我如何实例化类并调用相应的init函数?
static_assert在 的 false 分支中应丢弃以下内容if constexpr,但由于断言失败而导致编译失败:
#include <type_traits>
template <class T>
constexpr bool f() {
if constexpr (std::is_same<T, int>::value) return true;
else static_assert(false, "message");
}
int main () {
if constexpr (f<int>()) return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望丢弃的分支if constexpr不会被评估,因为它f是用 type 实例化的int。
用 Gcc 7.2 (-std=c++17) 编译
instantiation ×10
c# ×2
c++ ×2
class ×2
java ×2
.net ×1
android ×1
asp.net ×1
block ×1
constexpr ×1
haxe ×1
if-constexpr ×1
inheritance ×1
iteration ×1
performance ×1
properties ×1
python ×1
swift ×1