问题列表 - 第29452页

如何在C中实现C++虚函数

C++语言提供了virtual函数.在纯C语言实现的约束下,如何实现类似的效果?

c c++ language-implementation

18
推荐指数
1
解决办法
1万
查看次数

Derby和Circumflex ORM的SQL语法错误

我正在尝试使用Circumflex ORM(在StackOverflow上建议 - 这里,这里这里)通过JDBC从Scala项目(使用简单的构建工具构建)连接到本地(嵌入式)Apache Derby数据库.我仔细按照说明操作,但我遇到了一些有趣的问题.

这是cx.properties文件的驱动程序和URL组件:

orm.connection.driver=org.apache.derby.jdbc.EmbeddedDriver
orm.connection.url=jdbc:derby:derbyDB
Run Code Online (Sandbox Code Playgroud)

(这些映射到"反射驱动程序的实例创建和创建连接"模型与原始JDBC或persistence.xml中的等价物 - Circumflex使用一个简短而又甜蜜的属性文件,因为,你知道,它不是XML,这是一个很好的事情.)

我在sbt项目文件中添加的直接相关的依赖项是:

  "ru.circumflex" % "circumflex-orm" % "1.0",
  "org.apache.derby" % "derby" % "10.6.1.0"
Run Code Online (Sandbox Code Playgroud)

我创建了一个简短的示例模型,它定义了文档描述的表的简化版本:

import java.sql.DriverManager
import ru.circumflex.orm._

class Country extends Record[Country] {
  val code = "code" VARCHAR(2)
  val name = "name" TEXT
}

object Country extends Table[Country]
Run Code Online (Sandbox Code Playgroud)

这似乎编译好了,我可以实例化Country对象(使用sbt控制台调用的Scala 2.8.0 RC5 shell)并创建一个ActiveRecord对象样式,然后像这样保存:

val c = new Country
c.code := "US"
c.name := "United States of America"
c.save
Run Code Online (Sandbox Code Playgroud)

根据文档,这应该对对象运行验证,然后将其插入数据库.我得到以下异常:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "public" at …
Run Code Online (Sandbox Code Playgroud)

orm scala jdbc derby circumflex-orm

3
推荐指数
1
解决办法
1377
查看次数

Datagridview 复选框列只允许我选择一个复选框

好的,我的 datagridview 中的第一列是一个复选框。我已将“多选”设置为 true,这确实有效。但是,用户一次只能选中一个复选框,如果他们选择另一个复选框,原始复选框本身会取消选中,我该如何停止?我需要用户能够使用复选框选择 5 行中的 3 行,以便他们可以执行组操作。

谢谢,R。

c# visual-studio winforms

0
推荐指数
1
解决办法
4790
查看次数

JSF2:将 cc:attribute 限制为列表中的给定对象类型

如果我有一个托管 bean,如下所示:

@ManagedBean
@RequestSchoped
public class Example {

    private List<String> stringList;
    private List<Long> longList;

    // getters, setters, etc. down here
}
Run Code Online (Sandbox Code Playgroud)

并且有一个接受 List 作为属性的自定义组件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:cc="http://java.sun.com/jsf/composite"
      xmlns:h="http://java.sun.com/jsf/html">

  <!-- INTERFACE -->
  <cc:interface>
      <cc:attribute name="aList" type="java.util.List" />
  </cc:interface>

  <cc:implementation>
      <!-- code is in here -->
  </cc:implementation>
</html>
Run Code Online (Sandbox Code Playgroud)

我怎么能确保这有效:

<myComp:previousComponent aList="#{example.stringList}" />
Run Code Online (Sandbox Code Playgroud)

但这没有:

<myComp:previousComponent aList="#{example.longList}" />
Run Code Online (Sandbox Code Playgroud)

换句话说,我想做的事情cc:attribute如下:

<cc:attribute name="aList" type="java.util.List<java.lang.String>" />
Run Code Online (Sandbox Code Playgroud)

然而,正如我们所知,xhtml 不喜欢使用 > 或 <。此外,由于仅在编译时检查泛型,我不确定这将如何完成。有谁知道这是否可能?

xhtml jsf facelets composite-component jsf-2

6
推荐指数
1
解决办法
6685
查看次数

使用IN的JPA EntityManager createQuery()不起作用

这是失败的:

List<String> names = new ArrayList<String>();
names.add("sold");
Query query = em.createQuery("FROM PropField propField WHERE propField.name IN (?)");
query.setParameter(1, names);
List<PropField> fields = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

这是这样的:

List<String> names = new ArrayList<String>();
names.add("sold");
Query query = em.createQuery("FROM PropField propField WHERE propField.name IN (?)");
query.setParameter(1, names.toArray());
List<PropField> fields = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

这个也是:

List<String> names = new ArrayList<String>();
names.add("sold");
Query query = em.createQuery("FROM PropField propField WHERE propField.name IN ?");
query.setParameter(1, names.toArray());
List<PropField> fields = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

以及其他每一种排列.检查了文档,它说第一个选项应该有效.这是最好的例外.

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
at org.hibernate.type.StringType.toString(StringType.java:67)
Run Code Online (Sandbox Code Playgroud)

Hibernate的HQL使用 …

java orm hibernate jpa

7
推荐指数
2
解决办法
4万
查看次数

为什么WPF Dispatcher.Invoke不传播异常?

这是我的假设例子.我有一个非常简单的WPF窗口,带有一个Button.Button.Click事件有一个像这样的处理程序.

Action doit = () =>
{
    Action error = () => { throw new InvalidOperationException("test"); };

    try {
        this.Dispatcher.Invoke(error, DispatcherPriority.Normal);
    } catch (Exception ex) {
        System.Diagnostics.Trace.WriteLine(ex);
        throw;
    }
};
doit.BeginInvoke(null, null);
Run Code Online (Sandbox Code Playgroud)

我希望通过Trace.WriteLine调用捕获并记下异常.相反,没有捕获异常并且应用程序中断.

有人知道可能的解释吗?为了捕获被调用的委托抛出的异常,您建议使用哪种解决方法Dispatcher.Invoke

更新1:我throw在异常处理代码中添加了一个.我不想实际忽略该异常.我的问题的重点是正确处理它.问题是永远不会执行异常处理代码.

请记住,这是一个假设的例子.我的真实代码看起来不像那样.另外,假设我无法更改要调用的方法中的代码.

更新2:考虑这个类似的例子.我有一个Windows窗体窗口而不是WPF窗口.它有一个按钮,几乎完全相同的处理程序.唯一的区别在于调用代码.它是这样的.

this.Invoke(error);
Run Code Online (Sandbox Code Playgroud)

在Windows窗体中,执行异常处理代码.为什么不同?

.net wpf exception-handling exception invoke

14
推荐指数
1
解决办法
5109
查看次数

C中指针和全局变量的位置

哪里指针全局变量保存在C ^?它们是保存在内存,堆还是堆栈中?

c memory-management

13
推荐指数
3
解决办法
2万
查看次数

如何实现C++ 0x原始字符串文字?

如何定义词法分析器和解析器(例如: flex和bison)的工作集来支持C++ 0x样式的原始字符串文字?

您可能已经知道,C++ 0x中的新字符串文字可以非常灵活的方式表达.

R"<delim>...<delim>";- 在这段代码中,<delim>几乎可以说是一切,也不需要转义字符.

可以使用任何类型的括号来分隔字符串的结尾:

R"(I love those who yearn for the impossible. (Von Goethe, "Faust"))";

可以使用相同字符的相同出现次数来简单地定义文本块:

R";***************************(
  ; TINY BASIC FOR INTEL 8080  
  ;       VERSION 2.0  
  ;     BY LI-CHEN WANG  
  ; MODIFIED AND TRANSLATED  
  ;    TO INTEL MNEMONICS  
  ;     BY ROGER RAUSKOLB  
  ;     10 OCTOBER, 1976  
  ;       @COPYLEFT  
  ;  ALL WRONGS RESERVED      )
  ;***************************";
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里(维基百科)和这里(att)找到.

我想用我正在开发的语言中使用这个奇妙的功能.

那么,我如何定义一个合适的标记器和语法分析器来实现结果呢?

提前感谢您的回答!

string programming-languages language-design c++11

5
推荐指数
1
解决办法
581
查看次数

如何实例化一个大的不可变类型?

我有一个类型,有大约40个属性(所有值类型),代表我的业务的一种交易.此类的实例对应于我的数据库中的一行.我想保持我的类不可变,因为它只会用于读取操作,但我不知道如何在初始化期间设置40个属性.

通常我对不可变类型使用构造函数初始化,但我想避免编写带有40个参数的构造函数.我的房产的安装人员目前是私人的,但我愿意以足够的理由改变.是否有一种常见的方法来处理这种情况或更好的方法来解决问题?

c# instantiation immutability

4
推荐指数
2
解决办法
1219
查看次数

Rails Time.now,显示时间服务器启动而非实际时间

我以前见过这个问题,但我不知道如何解决它.

说我有:

class Notification < ActiveRecord::Base
  scope :current_notifications, where("starts_at <= ?", Time.now).where("ends_at >= ?", Time.now).limit(1)
end
Run Code Online (Sandbox Code Playgroud)

所以范围是从服务器启动的时间开始计算的,有关如何修复这样的实例的任何想法?

ruby-on-rails

4
推荐指数
1
解决办法
545
查看次数