我正在尝试创建一个使用getter定义属性的抽象类.我想将它留给派生类来决定是否要为属性实现setter.这可能吗?
到目前为止我所拥有的:
public abstract class AbstractClass {
public abstract string Value { get; }
public void DoSomething() {
Console.WriteLine(Value);
}
}
public class ConcreteClass1 : AbstractClass {
public override string Value { get; set; }
}
public class ConcreteClass2 : AbstractClass {
private string _value;
public override string Value {
get { return _value; }
}
public string Value {
set { _value = value; }
}
}
public class ConcreteClass3 : AbstractClass {
private string _value;
public override string …
Run Code Online (Sandbox Code Playgroud) 简单的一行html:
<div onclick="alert(this.style.height)">sometext</div>
和警报给出:
http://i55.tinypic.com/2rxdtgo.png
但它应该像10px
或那样.
使用.htaccess
,如何重写URL,以便在访问者输入时:
http://www.domain.com/index.php
http://www.domain.com/index.html
Run Code Online (Sandbox Code Playgroud)
他们将被重定向到http://www.domain.com/
.
我尝试了重定向,但它让我在循环中......
如果你能帮助我,请.
你有以下方法:
public static void writeToBinary(Object obj, String filename)
{
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new FileOutputStream(filename));
oos.writeObject(obj);
} catch (Exception e) {
e.printStackTrace();
} finally{
try{
if (oos != null) oos.close ();
}catch (Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,该方法将对象写入二进制文件.
但是现在您想要重写相同的方法以允许将对象附加到同一文件.
好的,你看一下java文档,你会发现你必须在FileOutputStream中添加一个值为true的参数:
oos = new ObjectOutputStream(new FileOutputStream(filename, true));
Run Code Online (Sandbox Code Playgroud)
你编译但是,哎呀!似乎它继续覆盖文件.
好吧,问题就开始了.在google中搜索后,您会发现必须使用SAME ObjectOutputStream将对象附加到同一文件中.你希望有一个函数,每次调用它时,它都会追加一个对象.即:
writeToBinary("a", filename);
writeToBinary("b", filename);
Run Code Online (Sandbox Code Playgroud)
但正如我之前所说,你必须使用相同的ObjectOutputStream.
解决方案1:
ObjectOutputStream out = getOutputStream (filename);
writeToBinary("a", out);
writeToBinary("b", out);
writeToBinary("c", out);
out.close ();
Run Code Online (Sandbox Code Playgroud)
这非常难看,因为我想隐藏流的使用.
还有其他解决方案吗?
编辑:该方法是静态的.它位于实用程序类中,其中所有方法都是静态的.
编辑2:解决了!附加到ObjectOutputStream …
我正在学习Tkinter并构建一个简单的8益智游戏.
(例如:http://www.permadi.com/java/puzzle8/)
每个数字都是使用网格布局放置到框架中的Canvas对象.其中一个对象是在Canvas对象之间添加额外的填充.我将Canvas对象的边框宽度设置为-2,这解决了一些人的问题,但这只会略微减少我的额外填充.将此值设置为-4开始切入我的画布区域.
我假设网格布局的单元格有一些默认的填充或边框宽度,但我还没有找到一种方法来删除它.在Canvas对象上调用grid()时设置padx,pady,ipadx,ipady值似乎也没有帮助.
我发现的另一个奇怪之处是当我为Canvas对象创建一个边框时,我使用了create_rectangle,但是我必须以4,4开始x_1和y_1而不是0,0或2,2这是我期望的2px边框.
这是我的代码.任何帮助/建议/解决方法/否则非常感谢.
#!/usr/bin/python
from Tkinter import *
class Number(Canvas):
def __init__(self, master=None, number=1):
Canvas.__init__(self, master, width=100, height=100, bd=-2)
self.create_text(50, 50, text=str(number), anchor=CENTER)
self.create_rectangle(4, 4, 98, 98, width=2)
class Application(Frame):
def create_widgets(self):
self.playarea = Frame(self, width=300, height=300)
self.playarea.grid_propagate(0)
self.playarea.grid()
self.playarea.numbers = []
for number in xrange(1, 10):
num_obj = Number(self.playarea, number)
self.playarea.numbers.append(num_obj)
row = number // 3
col = number % 3
num_obj.grid(row=row, column=col)
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.create_widgets()
def main(): …
Run Code Online (Sandbox Code Playgroud) 使用 PHPUnit,我可以成功测试对类的特定调用是否正确引发了如下异常:
try
{
$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');
}
catch (Exception $ex)
{
return;
}
$this->fail("Import_Driver_Excel::get_file_type_from_file_name() does not properly throw an exception");
Run Code Online (Sandbox Code Playgroud)
但我在这里读到有一种更简单的方法,基本上在一行中使用setExpectedException()
:
class ExceptionTest extends PHPUnit_Framework_TestCase
{
public function testException()
{
$this->setExpectedException('InvalidArgumentException');
}
}
Run Code Online (Sandbox Code Playgroud)
但是我如何让它像上面的例子一样工作,即我想测试这个类是否只有在我用“BAD_NAME.nnn”进行特定调用时才会抛出这个异常?这些变体不起作用:
$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');
$this->setExpectedException('Exception');
Run Code Online (Sandbox Code Playgroud)
也不是这个:
$this->setExpectedException('Exception');
$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');
Run Code Online (Sandbox Code Playgroud)
如何使用 setExpectedException() 替换上面的工作示例?
如何简单地获取一个汇编指令的代码?
例如"mov eax 0x14".我想在linux终端中使用gcc或gdm获取它.
我正在寻找在C#应用程序中使用扩展方法而非静态实用程序类的一些优缺点.
例如,扩展方法列中的一个加号是通过类名调用而不是像"StringUtils"那样的方便.但是,它可能会模糊框架内部和非框架之间的界限.
我正在尝试使用ASP.NET MVC实现订单输入表单,但面临很多困难.我找到的所有样本都与查看主要详细信息表单有关,而没有用于添加或编辑.
假设我有两个表:Order和OrderLines,它们彼此相关,具有一对多的关系.在主视图中,我点击时有一个"新建"按钮,它应显示由订单字段组成的新订单视图,显示订单行的网格,以及点击时将保留整个订单的"保存"按钮它的行成为一个数据库.网格应该有三个按钮:"添加线","编辑线"和"删除线".单击"添加行"时,应显示一个新视图,允许用户将行添加到订单视图网格线 - 在此阶段,数据库不受影响.当用户单击"编辑行"时,将显示一个视图,允许用户编辑所选行,完成后更新订单网格线.
最困难的问题是:
如何在订单视图和订单行视图之间传递订单及其行集合?
如何根据订单行视图中的更改更新订单视图?
如何在不涉及数据库的情况下在视图之间保持更改?
是否有一个具体的例子说明如何使用MVC实现它?
感谢您的帮助和反馈.
c# ×2
.htaccess ×1
.net ×1
asp.net-mvc ×1
assembly ×1
css ×1
data-entry ×1
forms ×1
gcc ×1
getter ×1
height ×1
java ×1
javascript ×1
linux ×1
mod-rewrite ×1
php ×1
phpunit ×1
properties ×1
python ×1
redirect ×1
setter ×1
sql ×1
tkinter ×1