GVKun编程网logo

为什么(int)(object)10m会引发“指定的转换无效”异常?(int无法转换为string)

10

在本文中,您将会了解到关于为什么的新资讯,同时我们还将为您解释int的相关在本文中,我们将带你探索为什么的奥秘,分析int的特点,并给出一些关于ApacheKafka客户端何时会引发“批处理过期”异常

在本文中,您将会了解到关于为什么的新资讯,同时我们还将为您解释int的相关在本文中,我们将带你探索为什么的奥秘,分析int的特点,并给出一些关于Apache Kafka客户端何时会引发“批处理过期”异常?、c# – 尝试使用ExecuteScalar,并获得“指定的强制转换无效”错误、Calendar.before(Object when),为什么是Object?、class Classname(object),Python中的“ object”是什么样的词?的实用技巧。

本文目录一览:

为什么(int)(object)10m会引发“指定的转换无效”异常?(int无法转换为string)

为什么(int)(object)10m会引发“指定的转换无效”异常?(int无法转换为string)

为什么此显式强制转换会引发Specified cast is not valid.异常?

decimal d = 10m;object o = d;int x = (int)o;

但这有效:

int x = (int)(decimal)o;

答案1

小编典典

装箱的值只能拆箱到完全相同类型的变量。这种看似奇怪的限制是非常重要的速度优化,它使.NET
1.x在使用泛型之前就变得可行。您可以在此答案中了解更多信息。

您不想跳过多个转换箍,简单的值类型实现IConvertible接口。使用Convert类调用的方法:

        object o = 12m;        int ix = Convert.ToInt32(o);

Apache Kafka客户端何时会引发“批处理过期”异常?

Apache Kafka客户端何时会引发“批处理过期”异常?

使用Apache Kafka Java客户端(0.9),我试图使用Kafka
Producer类将一连串的记录发送到代理。

异步发送方法会立即返回一会儿,然后在很短的时间内开始阻塞每个调用。大约三十秒钟后,客户端开始引发异常(TimeoutException),并显示消息
“批处理已过期”

在什么情况下会引发此异常?

答案1

小编典典

此异常表示您正在以比发送记录更快的速率对记录进行排队。

调用
send
方法时,ProducerRecord将存储在内部缓冲区中,以发送给代理。一旦ProducerRecord被缓冲,该方法将立即返回,而不管其是否已发送。

记录被分成 批次 发送到代理,以减少每封邮件偷听运输和提高吞吐量。

将记录添加到批处理中之后,发送该批处理有一个时间限制,以确保已在指定的持续时间内发送了该批处理。这由生产者配置参数
request.timeout.ms
控制,该参数默认为三十秒。

如果批处理的排队时间超过了超时限制,则将引发异常。该批次中的记录将从发送队列中删除。

使用配置参数来增加超时限制,将使客户端可以在过期之前将批处理排队更长的时间。

c# – 尝试使用ExecuteScalar,并获得“指定的强制转换无效”错误

c# – 尝试使用ExecuteScalar,并获得“指定的强制转换无效”错误

我试图通过使用产品名称来获得产品价格.以下是我正在使用的功能.
public int GetProductPrice(string ProductName)
{
    cnn.open();
    sqlCommand cmd = new sqlCommand("SELECT ProductPrice FROM Products WHERE ProductName ='" + ProductName + "'",cnn);
    int price = (int)cmd.ExecuteScalar();
    return price;
}

现在我一直得到这个错误指定的强制转换是无效的,我不知道为什么.有人能帮我吗 ?

解决方法

首先,您应该使用参数化sql而不是将参数直接放入sql中.此外,您应该使用using语句在完成后关闭命令 – 和连接.哦,并为每个操作创建一个新的sqlConnection.所以类似于:
public int GetProductPrice(string productName)
{
    // Quite possibly extract the connection creation into a separate method
    // to call here.
    using (var conn = new sqlConnection(...))
    {
        conn.open();
        using (var command = new sqlCommand(
            "SELECT ProductPrice FROM Products WHERE ProductName = @ProductName",conn))
        {
            command.AddParameter("@ProductName",sqlDbType.VarChar)
                   .Value = productName;
            object price = command.ExecuteScalar();
            // And you'd do the casting here
        }
    }
}

接下来,我们不知道ProductPrice字段的类型.可能是你得到了很长的回报,或者可能是小数.最简单的方法是使用:

object tmp = cmd.ExecuteScalar();

…然后查看调试器.还要看一下数据库中字段的类型 – 这应该真正告诉你期待什么.看看这两者之间的映射的SqlDbType枚举.

Calendar.before(Object when),为什么是Object?

Calendar.before(Object when),为什么是Object?

来自的javadoc Calendar.before(Object when)

返回此Calendar是否代表指定Object所表示的时间之前的时间。此方法等效于:

compareTo(when) < 0

当且仅当when是Calendar实例。否则,该方法返回false。

如果有人传递的不是Calendar实例的东西返回false,为什么它接受一个Object?为什么不只接受Calendar实例呢?这使我在相当长一段时间内一直在监视功能的不正确结果。

答案1

小编典典

我认为没有特别的原因。java.util.Calendar不幸的是,我们不得不解决一些设计问题。

class Classname(object),Python中的“ object”是什么样的词?

class Classname(object),Python中的“ object”是什么样的词?

当我创建一个包含其唯一内容的模块时:

class Classname(randomobject):    pass

我尝试运行解释器说randomobject未定义的模块的.py文件。

但是当我这样做时:

class Classname(object):    pass

该模块运行正常。那么,如果object不是关键字,那是什么呢?

答案1

小编典典

object是一个(全局)变量。默认情况下,它绑定到内置类,该内置类是类型层次结构的根。

(这导致了一个有趣的属性,您可以采用任何内置类型,并使用该__bases__属性来达到称为对象的类型)。

并非关键字或运算符的所有内置内容都是标识符。

关于为什么int的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Apache Kafka客户端何时会引发“批处理过期”异常?、c# – 尝试使用ExecuteScalar,并获得“指定的强制转换无效”错误、Calendar.before(Object when),为什么是Object?、class Classname(object),Python中的“ object”是什么样的词?等相关知识的信息别忘了在本站进行查找喔。

本文标签: