我在Perl中有两个数据结构:
数组:
my @array2 = ( "1", "2", "3");
for $elem (@array2) {
print $elem."\n";
}
Run Code Online (Sandbox Code Playgroud)
给我以下输出:
1
2
3
Run Code Online (Sandbox Code Playgroud)
还有一个清单:
my @array = [ "1", "2", "3"];
for $elem (@array) {
print $elem."\n";
}
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
ARRAY(0x9c90818)
Run Code Online (Sandbox Code Playgroud)
显然,我想在两种情况下迭代元素,但为什么第二种解决方案只给我这个数组的引用?
我正在使用spray-json将自定义对象列表编组到JSON中.我有以下case类和它的JsonProtocol.
case class ElementResponse(name: String, symbol: String, code: String, pkwiu: String, remarks: String, priceNetto: BigDecimal, priceBrutto: BigDecimal, vat: Int, minInStock:Int, maxInStock: Int)
object JollyJsonProtocol extends DefaultJsonProtocol with SprayJsonSupport {
implicit val elementFormat = jsonFormat10(ElementResponse)
}
Run Code Online (Sandbox Code Playgroud)
当我试图像这样的路线投入时:
get {
complete {
List(new ElementResponse(...), new ElementResponse(...))
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误说:
could not find implicit value for evidence parameter of type spray.httpx.marshalling.Marshaller[List[pl.ftang.scala.polka.rest.ElementResponse]]
Run Code Online (Sandbox Code Playgroud)
也许你知道这是什么问题?
我正在使用Scala 2.10.1喷雾1.1-M7和喷雾-json 1.2.5
我想为IBatis创建一个基于枚举的通用映射器.我正在使用以下代码执行此操作.这确实有编译时错误,我不知道如何修复.也许我的解决方案是完全错误的(请记住使用IBatis),在这种情况下请提出更好的建议.
任何帮助赞赏.
我想要实现的是将后续的映射器定义为:
public class XEnumTypeHandler extends CommonEnumTypeHandler<X> {
}
Run Code Online (Sandbox Code Playgroud)
目前的代码:
public class CommonEnumTypeHandler<T extends Enum> implements TypeHandlerCallback {
public void setParameter(ParameterSetter ps, Object o) throws SQLException {
if (o.getClass().isAssignableFrom(**T**)) {
ps.setString(((**T**) o).value().toUpperCase());
} else
throw new SQLException("Excpected ParameterType object than: " + o);
}
public Object getResult(ResultGetter rs) throws SQLException {
Object o = valueOf(rs.getString());
if (o == null)
throw new SQLException("Unknown parameter type: " + rs.getString());
return o;
}
public Object valueOf(String s) {
for (T pt : …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写我的OpenOffice文档(在我的情况下是Writer)来编写一些简单的小部件.即我想将文本从小部件复制到小部件.为此我想获得一个组件,而不是从中获取文本.
我一直试图这样做:
document = ThisComponent.CurrentController.Frame
oDocument = ThisComponent
oTextBoxFrom = document.getByName("Text Box 1") # 1
oTextBoxFrom = oDocument.getByName("Text Box 1") # 2
Run Code Online (Sandbox Code Playgroud)
版本#1和#2都不起作用.VB编译器吐出"文本框1"无法访问,但我的表单中有该组件.我的猜测是我试图从错误的地方获取这个组件,例如.不是它的框架.我只是无法弄清楚文件的结构是什么.
这似乎是一个非常简单的任务,但是我无法找到任何OpenOffice规范,因为从VB或python访问OO UNO对象.
嗨,我有一个领域模型,用于Django应用程序,我想在一个表单上呈现.我用自定义的ModelForms创建了我的应用程序(没有太多变化,一些字段被排除在外等).模型的依赖关系如下:
Complaint
\
.--- CarInfo
.--- Customer
Run Code Online (Sandbox Code Playgroud)
我的视图功能如下所示:
def make(request):
if request.method == 'POST':
parameters = copy.copy(request.POST)
complaint = Complaint()
carInfo = CarInfo()
customer = Customer()
customer_form = CustomerForm(parameters, instance=customer)
carInfo_form = CarInfoForm(parameters, instance=carInfo)
parameters['complaint_date'] = get_current_date()
parameters['customer'] = 1 # dummy value to allow validation success
parameters['car_info'] = 1 # dummy value to allow validation success
form = ComplaintForm(parameters, instance=complaint)
if form.is_valid() and customer_form.is_valid() and carInfo_form.is_valid():
carInfo_form.save()
customer_form.save()
parameters['customer'] = customer.id
parameters['car_info'] = carInfo.id
form = ComplaintForm(parameters, instance=complaint)
form.save() …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个测试数据库(使用H2数据库).我在生产中使用Oracle,在h2中使用oracle兼容模式似乎很好.
但是我在翻译oracle构造时遇到了问题:
create or replace PACKAGE permission_tools IS
FUNCTION get_role_access_level(
p_role_id IN NUMBER,
p_permiss IN VARCHAR2)
RETURN NUMBER;
END permission_tools;
Run Code Online (Sandbox Code Playgroud)
我打电话给:
select permission_tools.get_access_level(?, ?) from dual;
Run Code Online (Sandbox Code Playgroud)
进入H2当量.我一直在尝试这样的事情:
CREATE SCHEMA PERMISSION_TOOLS;
CREATE ALIAS PERMISSION_TOOLS.GET_ACCESS_LEVEL as $$
String nextPrime(String value) {
return new BigInteger(value).nextProbablePrime().toString();
}
$$;
Run Code Online (Sandbox Code Playgroud)
但这给了我编译错误:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "
CREATE ALIAS PERMISSION_TOOLS.[*]GET_ACCESS_LEVEL AS
String nextPrime(String value) {
return new BigInteger(value).nextProbablePrime().toString();
}
"; expected "FOR"; SQL statement:
CREATE ALIAS PERMISSION_TOOLS.GET_ACCESS_LEVEL as $$
String nextPrime(String value) {
return new …Run Code Online (Sandbox Code Playgroud) 我有一个复杂的django对象,它具有其他类类型的属性.这是这样的:
class Order:
contractor - type Person
some other fields....
Run Code Online (Sandbox Code Playgroud)
在我的表单中,我希望能够从下拉列表中选择现有的Person对象,或者添加一个带有表单的新对象.我已经设法创建表单和适当的工作流程,但问题是保存Order本身,我根本无法获取已保存的Person实例的id.我这样做:
def make_order(request):
if request.method == 'POST':
parameters = copy.copy(request.POST)
contractor_form = ContractorForm(parameters)
if contractor_form.is_valid():
contractor_form.save()
parameters['contractor'] = ???
form = OrderForm(parameters)
if form.is_valid():
form.save()
return HttpResponseRedirect('/orders/')
else:
form = OrderForm()
contractor_form = ContractorForm()
return render_to_response('orders/make_order.html', {'order_form' : form, 'contractor_form' : contractor_form})
Run Code Online (Sandbox Code Playgroud)
因此,如果POST请求到达此方法,我首先检查ContractorForm是否已被填充 - 我假设如果表单有效,则表示要使用它.如果是,则保存,并希望将保存对象的数据库ID分配给适当的字段,以便OrderForm找到它.
我所有的表单都是ModelForms.
问题是:
编辑
我的ContractorForm是:
class ContractorForm(ModelForm):
class Meta:
model = Contractor
Run Code Online (Sandbox Code Playgroud)
没有什么花哨.
我在连接django中的信号时遇到问题.我一直在关注http://dmitko.ru/?p=546上提供的教程,并尝试扩展用户注册.
我已经正确设置了django-registration.它工作正常.出于调试目的,我将以下代码放入我的urls.py中:
from registration.signals import user_registered
def log_user_created(sender, user, request, ** kwargs):
logger.debug("got USER_REGISTERED signal")
if settings.DEBUG:
logger.debug("registering debug signal listeners")
user_registered.connect(log_user_created)
else:
logger.debug("debuging signals not enabled")
Run Code Online (Sandbox Code Playgroud)
但是永远不会调用log_user_created函数.
我的问题是:如何调试我的应用程序以查看吞下user_registered信号的位置?
注意:我已经检查过我的django-registration版本是否正常工作.我已将我的版本改为上述博客示例应用程序中的版本.它没有改变观察到的行为.
我正在尝试为我的应用程序实现一个拦截器,它能够跟踪它看到的对象.我需要能够分辨出我现在看到的对象是新的还是重用的.
假设我有这样一个界面:
public interface Interceptor {
void process(Object o);
}
Run Code Online (Sandbox Code Playgroud)
我一直在考虑添加一个可以跟踪这些对象的Set.但是既然我不想因这种行为导致内存泄漏,或许我应该设计一些其他模式?最后,这些对象可能会在其他层中被破坏.
可能的解决方案:
第一个选项似乎不是100%可靠,因为hashCode可能不是唯一的.至于第二个选项,我不确定这会阻止memleaks.
还有一点需要注意,我无法修改对象,我无法添加字段,方法.包装也不是一种选择.
有任何想法吗?