我正在读关于状态模式.我刚刚开始,所以当然我首先阅读整篇维基百科的文章.
我注意到本文中的两个示例都有一些基本抽象类或Java接口,用于通用State的方法/函数.然后有一些状态从基础继承并以不同的方式实现这些方法/功能.然后是一个Context类,它有一个State类型的私有成员,并且在任何时候都可以等于其中一个实现的实例.该上下文类也实现了相同的方法,并将它们传递给当前的状态实例,然后有一个额外的方法来改变状态(或者根据设计,我理解状态的改变可能是对其中一个实现的方法的反应) .
为什么这个上下文类没有专门"扩展"或"实现"通用的State基类/接口?
我正在使用Steve Sanderson的BeginCollectionItem助手和ASP.NET MVC 2来模拟绑定项目的集合.
只要集合项的模型不包含其他集合,这样就可以了.
我有这样的模型:
-Product
--Variants
--- IncludedAttributes
每当我渲染和模型绑定Variants集合时,它都可以正常工作.但是使用IncludedAttributes集合,我无法使用BeginCollectionItem帮助器,因为id和names值将不会遵循为其父Variant生成的id和names值:
<div class="variant">
<input type="hidden" value="bbd4fdd4-fa22-49f9-8a5e-3ff7e2942126" autocomplete="off" name="Variants.index">
<input type="hidden" value="0" name="Variants[bbd4fdd4-fa22-49f9-8a5e-3ff7e2942126].SlotAmount" id="Variants_bbd4fdd4-fa22-49f9-8a5e-3ff7e2942126__SlotAmount">
<table class="included-attributes">
<input type="hidden" value="0" name="Variants.IncludedAttributes[c5989db5-b1e1-485b-b09d-a9e50dd1d2cb].Id" id="Variants_IncludedAttributes_c5989db5-b1e1-485b-b09d-a9e50dd1d2cb__Id" class="attribute-id">
<tr>
<td>
<input type="hidden" value="0" name="Variants.IncludedAttributes[c5989db5-b1e1-485b-b09d-a9e50dd1d2cb].Id" id="Variants_IncludedAttributes_c5989db5-b1e1-485b-b09d-a9e50dd1d2cb__Id" class="attribute-id">
</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
如果你查看表格中第一个隐藏字段的名称,它就是Variants.IncludedAttributes - 它应该是Variants [bbd4fdd4-fa22-49f9-8a5e-3ff7e2942126] .IncludedAttributes [...] ...
这是因为当我第二次调用BeginCollectionItem时(在IncludedAttributes集合上),没有给出关于它的父Variant的项索引值的信息.
我渲染Variant的代码如下所示:
<div class="product-variant round-content-box grid_6" data-id="<%: Model.AttributeType.Id %>">
<h2><%: Model.AttributeType.AttributeTypeName %></h2>
<div class="box-content">
<% using (Html.BeginCollectionItem("Variants")) { %>
<div class="slot-amount">
<label class="inline" for="slotAmountSelectList"><%: Text.amountOfThisVariant %>:</label>
<select id="slotAmountSelectList"><option …Run Code Online (Sandbox Code Playgroud) 是否有允许用户创建<code/>或<pre/>阻止的插件?
如果我传入一些包含<code> </code>块的html,则会显示内容,但没有任何视觉指示它与其他文本不同.这不方便,但我似乎找不到一种方法,用户可以选择他们想要按字面意思显示的代码块,然后单击按钮来指示.
我仍然是CKEditor的新手,但我知道Telerik有一个相当优雅的实现.(只需单击标题为"格式代码块"的右上方工具栏按钮).
这个编辑器支持吗?他们的任何插件是否添加了此功能?
我们开始学习Android,转换我们的iPhone应用程序.
Eclipse中有一个关于布局的基本编辑器,但它不是很好.是否有一个与iPhone"界面生成器"相同的视觉设计师?
我正在编写一本ANTLR(一个语言处理库)书,有很多例子应该很容易使用命令行编译.
有些信息可以解决问题:
antlr-3.2.jar包含库类.我添加antlr-3.2.jar到CLASSPATH环境变量(Windows 7)和编译类时,javac一切正常.这是我执行编译我的程序:
javac Test.java ExprLexer.java ExprParser.java
Run Code Online (Sandbox Code Playgroud)
Test.java包含my main()-method,ExprLexer而且ExprParser由ANTLR生成.这三个类都使用包含在中的类antlr-3.2.jar.但到目前为止这么好.正如我刚才所说,编译工作正常.
当我试图执行Test.class那个我遇到麻烦的时候.这是我输入的内容:
java -cp ./ Test
Run Code Online (Sandbox Code Playgroud)
执行此操作时,解释器告诉我他找不到包含在其中的ANTLR类antlr-3.2.jar,尽管我在CLASSPATH变量中添加了一个条目.
Exception in thread "main" java.lang.NoClassDefFoundError: org/antlr/runtime/Cha
rStream
Caused by: java.lang.ClassNotFoundException: org.antlr.runtime.CharStream
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Test. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我正在使用Windows 7和Java 1.6_20.有人能说出发生了什么吗?为什么解释器不会在jar中找到我在Archive中指定的CLASSPATH?
我找到了某种工作方式.我将antlr-3.2.jar复制到Test.class所在的目录中,然后执行:
java …Run Code Online (Sandbox Code Playgroud) 当我的ListView被自定义数组适配器填充时,我检查当前列表项中的某个参数,如果它是false,我想返回一个空行.目前,我通过膨胀空的xml文件来做这件事,但是当不应该显示多个项目时,这会产生丑陋的列表项目分隔符,并且显然不是最好的方式;-)!
if (list.get(position).equals("i-dont-want-this-in-the-list-view")){
View empty=inflater.inflate(R.layout.empty_row, parent, false);
return(empty);
}
Run Code Online (Sandbox Code Playgroud)
我试图返回"null",但它显然希望返回一个View.有没有我可以做的事情,而不必事先过滤ListView用于ListView(我想保持它完整,因为我也在做其他事情).
谢谢,
缺口
只是想知道什么是各种工具和技术来调试Java应用程序的生产问题.喜欢,
(假设所有都在Linux/Unix环境中)
我是一名移动网络开发者,并尝试通过移动广告服务从我的流量中获利,但我遇到了问题.
首先,为了获得大部分广告,您通常需要向广告公司的服务器提出服务器端请求,而且广告服务很少.如果要在一个站点中使用它们,问题就会开始.
所有人都有不同的服务器端呼叫方法,并且尝试维护和实施这些广告代码会在一段时间后变得很痛苦.
所以我决定写一个类系统,我可以简单地为每个公司创建方法并将其上传到我的网站.
到目前为止,我有使用GetAd方法的公共广告类公共AdPublisher类,它返回一个广告公共Adservice类,其服务名称为枚举
我还将我用于所有广告服务的服务器请求代码转换为类.
它工作正常,但我希望能够创建一个广告服务类上传它,以便asp.net应用程序可以像插件系统一样自动导入/识别它.
因为我是.net的新手,我不知道从哪里开始或者怎么做.
为了清楚起见,这是我的课程
namespace Mobile.Publisher
{
public class AdPublisher
{
public AdPublisher()
{
IsTest = false;
}
public bool IsTest { get; set; }
public HttpRequest CurrentVisitorRequestInfo { get; set; }
public Advert GetAd(AdService service)
{
Advert returnAd = new Advert();
returnAd.Success = true;
if (this.CurrentVisitorRequestInfo == null)
{
throw new Exception("CurrentVisitorRequestInfo for AdPublisher not set!");
}
if (service == null)
{
throw new Exception("AdService not set!");
}
if (service.ServiceName == AdServices.Admob)
{
returnAd.ReturnedAd …Run Code Online (Sandbox Code Playgroud) 好吧,我正在编写一个游戏,其中包含一个pairent类(敌人)的向量,它将被子类(goomba,koopa,boss1)填充,我需要在调用update时调用子类.各自的更新.我设法创建了一个问题的例子.
#include <stdio.h>
class A{
public:
virtual void print(){printf("Hello from A");}
};
class B : public A{
public:
void print(){printf("Hello from B");}
};
int main(){
A ab = B();
ab.print();
while(true){}
}
Run Code Online (Sandbox Code Playgroud)
输出需要:"你好B"输出得到:"你好A"
如何让它调用B的打印功能?
java ×3
android ×2
plugins ×2
asp.net-mvc ×1
c# ×1
c++ ×1
ckeditor ×1
classpath ×1
command-line ×1
der ×1
designer ×1
encoding ×1
heap-dump ×1
inheritance ×1
java-ee ×1
layout ×1
listadapter ×1
listview ×1
polymorphism ×1
rsa ×1
state ×1