public static void sendMsg(){ }。。为什么要static
时间: 2024-06-05 11:11:25 浏览: 110
在Java中,static关键字可以用来修饰方法。如果一个方法被声明为静态方法,那么它就属于类级别的,而不是对象级别的。这意味着不需要创建类的实例就可以直接调用该方法。
在一个静态方法中,不能访问非静态的成员变量和成员方法,因为非静态成员变量和成员方法是属于对象的,而静态方法是属于类的。
对于 sendMsg() 方法而言,如果它不是静态方法,那么每次使用该方法都需要先创建一个类的实例,这样会浪费内存。而如果将 sendMsg() 方法声明为静态方法,就可以直接通过类名调用该方法,不需要创建实例,从而避免了不必要的内存开销。
相关问题
public static void sendMsg(){ }。。为什么要void
在Java中,`void`是一种特殊的返回类型,用于表示该方法不返回任何值。如果方法没有返回值,则应该使用`void`关键字来标记它。
在方法签名中使用`void`关键字告诉编译器,该方法不会返回任何值。这也意味着,如果您尝试在该方法中使用`return`语句返回一个值,编译器会生成一个错误。
在你的例子中,`sendMsg()`方法没有返回任何值,因此使用`void`关键字是正确的。该方法可能会执行一些操作,比如发送一条消息,但它不会返回任何值。
KafkaUtil.sendMsg("yjxxt", "Hello Flink Kakfa" + i + "," + System.currentTimeMillis());
这是发送 Kafka 消息的代码,其中 "yjxxt" 是指 Kafka 的主题,"Hello Flink Kafka" + i + "," + System.currentTimeMillis() 是消息的内容,可以根据实际需求进行修改。你需要先引入 Kafka 的依赖,然后创建一个 Kafka 生产者实例,使用该实例发送消息即可。具体实现可以参考以下代码示例:
```
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties;
public class KafkaUtil {
private static KafkaProducer<String, String> producer = null;
static {
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", StringSerializer.class.getName());
props.put("value.serializer", StringSerializer.class.getName());
producer = new KafkaProducer<>(props);
}
public static void sendMsg(String topic, String msg) {
ProducerRecord<String, String> record = new ProducerRecord<>(topic, msg);
producer.send(record);
}
}
```
需要注意的是,这里使用了 Kafka 的默认配置,如需要进行配置修改可以在 Properties 中指定相应的配置项。
阅读全文